Archive

2013年6月 的Archive

PHP忽略大小寫的字串處理

2013年6月18日 尚無評論

在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

Categories: PHP, 程式開發 Tags:

程式中如何檢查PHP版本及函式是否有提供

2013年6月7日 尚無評論

最近在處理PHP,有用到一些PHP函式都有限定PHP某版本之後才支援或是某版本之後有些參數就作廢了

以前其實很好區分,多半只要注意PHP 3 4 5 這種大版本就好,但像PHP 5.3.0 之前及之後就有蠻多差別

所以如要判斷時,只要在程式中用phpversion()即可得到目前使用的PHP版本號
 

<?

 if(phpversion()>='5.3.0') echo "HI";

?>

詳請參考http://tw1.php.net/manual/en/function.phpversion.php

就是這麼簡單,那如果要判斷這函式是否有提供呢? 我們可以用function_exists即可判斷:

<?
if (function_exists('imap_open')) {
    echo "IMAP functions are available.<br />\n";
} else {
    echo "IMAP functions are not available.<br />\n";
}
?>

詳請參考http://php.net/manual/en/function.function-exists.php

 

如果我們要找某個PHP系統參數值呢? 我們可以用get_ini來查出來

詳請參考http://php.net/manual/en/function.ini-get.php

Categories: PHP, 程式開發 Tags: