20150202

Mac無法開機時的處理

當面臨到無法開機的情況時,首先要判斷的是屬於下列哪一種情況?

1. 空白的藍色或灰色畫面:可能是由磁碟權限、第三方軟體、或偶發的硬體問題所造成的。適用招式:ㄧ、二、三、四

2. 出現 "NO"、壞掉的資料夾或閃動的問號:這是由於 Mac 找不到開機所需的系統,可能是磁碟問題所致。適用招式:三、四

3. 黑色畫面,沒有聲音:你所碰到的可能是電力問題、主機板上的電池壞掉、故障的記憶體或其他的硬體問題


。第一招:以安全模式開機,開機快捷鍵:Shift
Step1: 開機時按住 Shift 鍵不放
Step2: 直到螢幕上出現灰色蘋果標誌及旋轉的齒輪時才放開Shift鍵
Step3: 如果順利啟動,“Safe Boot”字樣應該會在啟動時出現或在顯示於登入視窗中(以安全模式啟動會比一般啟動花更多的時間,因為系統會為開機磁碟進行磁軌檢查。耐著性子吧!若要離開安全模式,將電腦重新開機,並且不要在開機時按任何鍵即可。 )


。第二招:單一使用者模式,開機快捷鍵:Command(蘋果鍵) + S
Step1: 開機時按住 Command + S。如果看到黑底白字的文字模式,別嚇到了,這是正常的
Step2: 在游標後輸入 fsck - fy
Step3: 之後按 return 鍵。如果回覆的訊息是 " File System was Modified ",重複第二步驟直到系統回覆 " No problems were found "
Step4: 輸入 reboot 並按 return 鍵。(之後電腦就會重新開機了,如果順利就會進入系統,如果還是不行,那就試試其他的招式吧!)

其他解決方案:AppleJack(注1)
如果你在你的MAC 出問題之前曾安裝過 AppleJack,那麼過程就會簡單許多
1.輸入"applejack auto restart",之後按 return 鍵
2.稍待個幾分鐘,你的 MAC 將會重新開機並完成所有的修護作業


。第三招:用蘋果 CD/DVD 開機,開機快捷鍵﹕C
Step1: 放入 Mac OS X 安裝光碟(開機時壓住滑鼠不放即可打開光碟托盤[退片])
Step2: 開機時按住 C 鍵,直到灰色蘋果標誌出現在螢幕上才放手
Step3: Mac OS X 10.4.x的使用者:從選單列選擇「工具程式」> 「磁碟工具程式」
Step4: 從左側列出的硬碟圖示中選擇自己的硬碟,然後單點修理工具分頁中的「修復磁碟」。
Step5: 磁碟回報正常後,單點「修復磁碟權限」
Step6: 之後重開機,並在開機時不要按任何按鍵


。第四招:硬碟模式,開機快捷鍵:T
當其他的招式都失效時,硬碟模式可以讓你透過其他電腦來存取你的硬碟。這樣一來你就可以執行一些診斷、維護或者備份重要的工作檔案。
Step1: 開機時按住 T 鍵,直到看見 FireWire 圖示才放開。
Step2: 用一條 FireWire 線將故障的 Mac 接上正常的 Mac。
Step3: 開啟正常 Mac 上的磁碟工具程式 ( 位於應用程式 / 工具程式 )。
Step4: 從左側列出的硬碟圖示中選擇故障的硬碟,然後單點修理工具分頁中的「修復磁碟」。
Step5: 如果在正常 Mac 的桌面上可以看的到故障 Mac 的硬碟圖示,那麼說不定還可以把一些重要的檔案復原或者備份起來。


(注1):AppleJack 是一個專為 MAC OSX 開發的系統維護工具,當無法進入系統的圖形介面而手邊又沒有可開機的光碟時,AppleJack 可以在單一使用者模式下,以選單的方式協助使用者進行障礙排除。

20140920

用javascript限制文字輸入框(text)僅能輸入英文及數字

若要在文字輸入框限制只能輸入英文及數字,可以用以下的語法來達成: 
 
onkeyup="value=value.replace(/[^\w\.\/]/ig,'')"
 
 

20140408

Deprecated: Function session_register() is deprecated

PHP 5.3.0以後不贊成使用這個函式,PHP 6.0.0之後就不能再使用!


在以往的PHP版本中通常使用 session_is_register("name")檢查session是否存在,如果您使用$_SESSION[‘name’]=name來註冊的 話,則session_is_register("name")函數起不了作用。你可以使用isset($_SESSION[‘name’])來取代 session_is_register("name")。



版本
語法
PHP4
return session_is_registered($variable);
PHP5
return isset($_SESSION[$variable]);


在php5.3環境下session_register()函式是不能用的
所以應該把
session_register( “name” )
改成 
$_SESSION['name'] == null
  


而刪除session的語法也有改變 
session_destroy(“name”)


改為
unset($_SESSION[“name”]




Deprecated: Function ereg_replace() is deprecated

example :
$mytext = ereg_replace('[^A-Za-z0-9_]', '', $mytext );
is changed to
$mytext = preg_replace('/[^A-Za-z0-9_]/', '', $mytext );

Deprecated: Function set_magic_quotes_runtime() is deprecated

find:
set_magic_quotes_runtime(0);

replace with:
ini_set("magic_quotes_runtime", 0);

Deprecated: Function ereg() is deprecated


而PHP5.2版本以前ereg()都使用正常,在5.3以後,就要用preg_match來代替ereg。詳行請看PHP官方文件:ereg()頁面下有顯示
ereg() is deprecated as of PHP 5.3.0. preg_match() is the suggested alternative to this function. 
在PHP中有兩種正則表示法,一個是posix,一個是perl,PHP6打算廢除posix的正則表示方法所以後來就加了個 preg_match()

ereg()前面加個過濾提示信息符號即可->把ereg()變成@ereg()。但這樣把錯誤隱藏掉,在執行後面的程式碼,假如出錯也會連帶後面的資料出錯,這樣的方法並不是我們所想要的,所以在此並不推薦這方法。




Version
PHP 5.2 Version Before
PHP5.3 Version After
Function
Ereg()Eregi()
Preg_match()
舉例
ereg(“^[0-9]*$”,$String)
preg_match(“/^[0-9]*$/”,$Strimg)
說明
要加  /
特別提醒:posixperl的很明顯的表達區別就是是否加 /,所以與ereg相比,後者在正則的前後分別增加了兩個」/」符號,不能缺少。

PHP 5.3.0 後 split() 的替代方式

PHP 的 split() 非常方便, 但是 PHP 5.3.0 後, 不建議繼續使用 split(), 在使用上會出現警告訊息.

split() 不建議使用的原因

PHP 5.3.0 之後的 regex, 希望使用 PCRE 的規格, POSIX Regex 都不建議使用了(統一 Regex, 避免規格太多?).
所以下述是不建議使用的 Function (POSIX), 與建議替換成的 Function (PCRE) 列表, 詳可見: PHP: Differences from POSIX regex
  • POSIX → PCRE
  • ereg_replace() → preg_replace()
  • ereg() → preg_match()
  • eregi_replace() → preg_replace()
  • eregi() → preg_match()
  • split() → preg_split()
  • spliti() → preg_split()
  • sql_regcase() → No equivalent

PHP split() 替代方案

  • 需要 regex 的 split, 可用 preg_split() 代替
  • 不需要 regex, 只要要快速分割固定的字串, 可用 explode() 代替. (速度會比需要 regex 的快很多)

你還在幫別人打造舒適圈?

 師不順路,不好為人師,談何容易.... 人總是在為自己的做法找"理由",找一個漂亮的包裝,找一個可以說服人的方式,找一個立足點....然而,這個為自己所做的一切,往往是一個自私的隱性表現,因為你要達到的就是"滿足"自己。 但要如何滿足自己...