PHP忽略大小寫的字串處理
在PHP5 之後,有提供了字串處理時忽略大小寫的函式,蠻不錯用的而且也很好記憶,在此列出常用的幾個函式介紹:
strstr($str ,$keyword) 對應的函式就是stristr
該函式主要是找出$keyword之後的字串(可以將原本要用substr函式才能處理的事簡化)
值得一提,在PHP 5.3.0 之後 strstr函式,增加一個參數 strstr($str ,$keyword [,$before_boolean=false]),如設定為true,則效果反向可以找出$keyword之前的字串
請參考http://php.net/manual/zh/function.stristr.php
strpos($str, $keyword [,$offset=0]) 對應的函式就是stripos
主要是回傳$str之中$keyword首次出現的位置
如果是要找最後一次出現的位置可以改用 strrpos 當然對應的函式是strripos
請參考http://www.php.net/manual/zh/function.stripos.php
str_replace($searchKeyword , $replace ,$str) 對應的函式就是str_ireplace
可以將$str之中,全部的$searchKeyword都會換成$replace
請參考http://php.net/manual/zh/function.str-ireplace.php
strcmp($str1 ,$str2) 對應的函式,要注意就不是常用的加上i 而是strcasecmp
可以針對$str1,及$str2 進行字串大小比對,$str1>$str2會回傳正數, 小於會回傳負數,相等會回傳0
請參考http://www.php.net/manual/zh/function.strcmp.php
然而這函式還有其它類似作用的函式 ,都一樣有提供忽略大小寫,如下:
strncmp(可指定比較時使用的最大長度) 對應的是strncasecmp,請參考http://www.php.net/manual/zh/function.strncmp.php
strnatcmp (自然順序的比較)對應的是strnatcasecmp,請參考http://www.php.net/manual/zh/function.strnatcmp.php
如果是要在preg_ match 或是preg_ match_all 之中忽略大小寫進行比對呢?
只要在$pattern之中加上i即可,例如 原本preg_match("/HI (.*?) from/",$str,$martchs) 只要改成這樣即可
preg_match("/HI (.*?) from/i",$str,$martchs)
詳細使用請參考 http://www.php.net/manual/zh/function.preg-match.php
近期留言