[ 永遠的UNIX::UNIX技術資料的寶庫 ]   GB | BIG5

首頁 > 編程技術 > Php > 正文
PHP4手冊:函數庫及函數(四十三) 常規表示法函式庫
http://netleader.126.com 星空浪子 (2001-04-18 16:40:33)

--------------------------------------------------------------------------------
 常規表示法函式庫 
--------------------------------------------------------------------------------
 


本函式庫共有 6 個函式
關常規表示法 (Regular expression),似乎譯成:字串剖析處理,較合乎字面上的意義。但目前所有的相關書籍都譯成常規表示法或是正規表示法....等等,實際上是負責字串剖析比對,並對字串做相關的處理。 
本函式庫讓 PHP 也能處理復雜的字串操作。它採用了 POSIX 1003.2 的擴充常規處理 (regular expression) 的標準。更多關常規表示法的資訊可以參考 UNIX Shell、Perl 或是 awk 等相關的書籍。網路上也有張耀仁先生所作的正規表示式的入門與應用文章。 
 


ereg: 字串比對剖析。 
ereg_replace: 字串比對剖析並取代。 
eregi: 字串比對剖析,與大小寫無關。 
eregi_replace: 字串比對剖析並取代,與大小寫無關。 
split: 將字串依指定的規則切開。 
sql_regcase: 將字串逐字傳回大小寫字元。 

--------------------------------------------------------------------------------
 函式:ereg() 
--------------------------------------------------------------------------------
 


常規表示法函式庫


ereg
字串比對剖析。

語法: int ereg(string pattern, string string, array [regs]);

傳回值: 整數/陣列

函式種類: 資料處理


 
 
內容說明 


本函式以 pattern 的規則來剖析比對字串 string。比對結果傳回的值放在陣列參數 regs 之中,regs[0] 內容就是原字串 string、regs[1] 為第一個合乎規則的字串、regs[2] 就是第二個合乎規則的字串,余類推。若省略參數 regs,則只是單純地比對,找到則傳回值為 true。


 
 
使用范例 


這個例子是 markus@dnet.it 在 14-Jun-1999 所提出的,可對使用者輸入的 E-Mail 作簡單的檢查,檢查使用者的 E-Mail 字串是否有 @ 字元,在 @ 字元前有英文字母或數字,在之有數節字串,最的小數點只能有二個或三個英文字母。super@mail.wilson.gs 就可以通過檢查,super@mail.wilson 就不能通過檢查。

if (eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$",$email)) {
  echo "您的 E-Mail 通過初步檢查";
}
?> 

 
 
參考 


ereg_replace()  eregi()  eregi_replace()  


--------------------------------------------------------------------------------
 函式:ereg_replace() 
--------------------------------------------------------------------------------
 


常規表示法函式庫


ereg_replace
字串比對剖析並取代。

語法: string ereg_replace(string pattern, string replacement, string string);

傳回值: 字串

函式種類: 資料處理


 
 
內容說明 


本函式以 pattern 的規則來剖析比對字串 string,欲取而代之的字串為參數 replacement。傳回值為字串型態,為取代的字串結果。


 
 
使用范例 


ken@freebsdrocks.com 在 16-Mar-1999 提出的例子。

$text = 'This is a {1} day, not {2} and {3}.';
$daytype = array( 1 => 'fine',
                  2 => 'overcast',
                  3 => 'rainy' );
while (ereg ('{([0-9]+)}', $text, $regs)) {
  $found = $regs[1];
  $text = ereg_replace("\{".$found."\}", $daytype[$found], $text);
}
echo "$text\n";
// This is a fine day, not overcast and rainy. 
?>

ken@freebsdrocks.com 並同時提出具有相同功能的perl 程式范例如下:

$text = 'This is a {1} day, not {2} and {3}.';
%daytype = ( 1 => 'fine',
             2 => 'overcast',
             3 => 'rainy' );
$text =~ s/{(\d+)}/$daytype{$1}/eg;
print "$text\n"; 



 
 
參考 


ereg()  eregi()  eregi_replace()  


--------------------------------------------------------------------------------
 函式:eregi() 
--------------------------------------------------------------------------------
 


常規表示法函式庫


eregi
字串比對剖析,與大小寫無關。

語法: int eregi(string pattern, string string, array [regs]);

傳回值: 整數/陣列

函式種類: 資料處理


 
 
內容說明 


本函式和 ereg() 類似,用法也相同。不同之處在 ereg() 有區分大小寫,本函式與大小寫無關。


 
 
參考 


ereg()  ereg_replace()  eregi_replace()  

 

--------------------------------------------------------------------------------
 函式:eregi_replace() 
--------------------------------------------------------------------------------
 


常規表示法函式庫


eregi_replace
字串比對剖析並取代,與大小寫無關。

語法: string eregi_replace(string pattern, string replacement, string string);

傳回值: 字串

函式種類: 資料處理


 
 
內容說明 


本函式和 ereg_replace() 類似,用法也相同。不同之處在 ereg_replace() 有區分大小寫,本函式與大小寫無關。


 
 
參考 


ereg()  ereg_replace()  eregi()  

 

--------------------------------------------------------------------------------
 函式:split() 
--------------------------------------------------------------------------------
 


常規表示法函式庫


split
將字串依指定的規則切開。

語法: array split(string pattern, string string, int [limit]);

傳回值: 陣列

函式種類: 資料處理


 
 
內容說明 


本函式可將字串依指定的規則分開。切開的傳回值為陣列變數。參數 pattern 為指定的規則字串、參數 string 則為待處理的字串、參數 limit 可省略,表示欲處理的最多合乎值。值得注意的是本函式的 pattern 參數有區分大小寫。


 
 
參考 


explode()  implode()  

 

--------------------------------------------------------------------------------
 函式:sql_regcase() 
--------------------------------------------------------------------------------
 


常規表示法函式庫


sql_regcase
將字串逐字傳回大小寫字元。

語法: string sql_regcase(string string);

傳回值: 陣列

函式種類: 資料處理


 
 
內容說明 


本函式可將字串之字元逐字傳回大小寫。在 PHP 使用上,本函式沒有什作用,但可能可以提供外部程式或資料庫處理。


 
 
使用范例 


例中的傳回字串為 [Ww][Ii][Ll][Ss][Oo][Nn]

print(sql_regcase("wilson"));
?> 
(http://www.fanqiang.com)
    進入【UNIX論壇

相關文章
PHP4手冊:函數庫及函數(四十六) SNMP 網管函式庫 (2001-04-18 16:56:55)
PHP4手冊:函數庫及函數(四十五) Solid 資料庫連結函式庫 (2001-04-18 16:54:16)
PHP4手冊:函數庫及函數(四十四) 信號與共享記憶體函式庫 (2001-04-18 16:49:09)
PHP4手冊:函數庫及函數(四十三) 常規表示法函式庫 (2001-04-18 16:40:33)
PHP4手冊:函數庫及函數(四十二) URL 處理函式庫 (2001-04-18 16:37:13)
PHP4手冊:函數庫及函數(四十一) PostgreSQL 資料庫函式庫 (2001-04-18 15:58:12)
PHP4手冊:函數庫及函數(四十) PDF 格式檔案函式庫 - 2 (2001-04-18 15:53:53)
PHP4手冊:函數庫及函數(四十) PDF 格式檔案函式庫 - 1 (2001-04-18 15:53:35)
PHP4手冊:函數庫及函數(三十九) Perl 相容語法函式庫 (2001-04-18 15:45:08)
PHP4手冊:函數庫及函數(三十八) Oracle 資料庫函式庫 (2001-04-18 15:43:09)

===更多相關===
 

★  樊強制作 歡迎分享  ★