目前分類:[Computer Science] php (2)

瀏覽方式: 標題列表 簡短摘要
版本:php5.05 已經內置有php_curl.dll,在ext目錄下,此DLL用於支援SSL和zlib. 在php.ini中找到有extension=php_curl.dll, 去掉前面的注釋. 設置extension_dir=c:\php\ext, 刷新PHP頁面時報錯, 說找不到模組php_curl.dll. 拷貝php_curl.dll 到windows\system32,還是同樣的錯. 在網上找了一下,需要將: dl.bitsCN.com網管軟體下載 libeay32.dll, ssleay32.dll, php5ts.dll, php_curl.dll bbs.bitsCN.com國內最早的網管論壇 都拷貝到system32目錄下,重啟apache即可.

www.bitscn.com/php/install/200701/95410.html

coke750101 發表在 痞客邦 留言(0) 人氣()

PHP的正規表達式

正規表達式是一種字串的格式比對法,網頁上常常會出現使用者需要填寫表單的情況,可是要是你所需要的資料是如E-mail、電話、生日之類的,會有特定的格式,可是又怕使用者亂填一些無效的資料,在這時候就要用到正規表達式了!正規表達式有分為POSIX、PCRE等等的規格,PHP預設式使用POSIX
正規表達式的表達方式大致分為 [允許字符]{數量}…來進行表達,如我希望檢查輸入字串是由六個以內的英文字母組成
[a-zA-Z]{0,6}

邊界

正規表達式以[ ] 為其邊界,表示在邊界之中的字符都會被許可,如果想要由英文母音組成的單字則可以打成 [aeiou],如果是一定範圍的文字可以使用”-”來作連結,例如我想要用小寫英文字母組成的單字,就可以用[a-z]

另一種則由( )所組合成,表示多個字元組,例如有文字是a.b.c.d. 這樣要使用正規表達可以打
([a-z]\.)+
字符

有些無法顯示的按鍵如Enter換行、Tab、Backspace這些,要表達這些字符就要用另一種表達方式
Enter => \n
Backspace => \r
Tab => \t

如要表達一些標點符號如 . \ * + 則要使用 \ 來作跳脫,也就是用 \. \\ \* \+來表達

除了可以單獨輸入允許的字符之外,還可以使用特別的命名格式

* [:alnum:] 表示所有ASCII字母和數字,也等於[a-zA-Z0-9]
* [:alpha:] 表示所有ASCII字母,等於[a-zA-Z]
* [:blank:] 表示空格,等於[\t]
* [:space:] 表示所有鍵盤操作,如空白、Tab、Enter、Backspace,相當於[\n\t\r\x0b]
* [:digit:] 表示所有ASCII數字,也就是[0-9]
* [:lower:] 表示所有小寫字母,也就是[a-z]
* [:upper:] 表示所有大寫字母,也就是[A-Z]

點(.)的意義

正規表達式中,可以使用(.)點號來表達所有字符,如我想要同時選出son跟sun,我就可以用 s.n 來表達
重複

正規表達式不需要一個個文字來定義,如果是一連串的字符都一樣的格式就可以使用重複的方式,重複的方式主要用{起始,結束}來表達,如{1,6}就是指重複1~6個字符,結束或起始其一字數也可以不用打,就表示超過多少或低於多少字數都可以,如{0,}表示0個或更多,{,6}則是表示六個以下的字數,也可以直接輸入數字,表示固定的數量,如{3}表示三個字母
如我要表達IP位置(XXX.XXX.XXX.XXX),由四組數字組成,正規表達式表達方式就是
[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}

有些特殊情況可以使用內建的預定符號來表達

* * = {0,}
* + = {1,}
* ? = {0,1}

範例

1. 電話格式
如希望使用者輸入格式是輸入台灣手機號碼 09XX-XXX-XXX則可以使用
09[0-9]{2}-[0-9]{3}-[0-9]{3}

2. E-mail格式
E-mail的格式基本是由 帳號@網域名,一般帳號可允許的字符有英文、數字與底線(Gmail還支援一種使用+號來分類的位置),而網域名則通常以英文、數字、點號與減號組成,中間用@作區隔
[a-zA-Z0-9\._\+]+@([a-zA-Z0-9\.-]\.)*[a-zA-Z0-9\.-]+
搭配PHP函式

ereg(正規表達式, 字串 [, 結果矩陣]);
如果沒有輸入第三個屬性變數的話,比對正確會回報true,比對錯物會回報fase
如果有輸入第三個屬性則會將比對正確的結果以矩陣的方式放進這個變數中!

eregi(正規表達式, 字串 [, 結果矩陣]);
與ereg功能一樣,只是不會區分大小寫!

例如:
檢查E-mail
ereg(”[a-zA-Z0-9\._\+]+@([a-zA-Z0-9\.-]\.)*[a-zA-Z0-9\.-]+”, “example@domain.name”);
這樣會回報true!

coke750101 發表在 痞客邦 留言(0) 人氣()