程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP字符處理函數的問題總結

PHP字符處理函數的問題總結

編輯:關於PHP編程

我們在學習PHP字符處理函數1. in_array()函數

Java代碼

  1. $zero = "0";   
  2. $za = array("00");   
  3. if(in_array($zero, $za, true)){   
  4. echo 'in';   
  5. }else{   
  6. echo 'not in';   
  7. }  
  8. $zero = "0";  
  9. $za = array("00");  
  10. if(in_array($zero, $za, true)){  
  11. echo 'in';  
  12. }else{  
  13. echo 'not in';  
  14. }  

這段代碼應該輸出什麼?答案是in,而不是not in。
然後測試一下這個:

Java代碼

  1. $zero = "0";   
  2. $za = array("00");   
  3. if("0" == "00"){   
  4. echo '0 == 00';   
  5. }   
  6. $zero = "0";  
  7. $za = array("00");  
  8. if("0" == "00"){  
  9. echo '0 == 00';  
  10. }  

返回'0'=='00'。

所以以後要注意:對於字符串不是說in,就表示那個字符在array裡面。

PHP字符處理函數2. strtolower()函數

我的解決方式是:

Java代碼

  1. urldecode(strtolower
    (urlendoce($str)));   
  2. urldecode(strtolower
    (urlendoce($str)));  

PHP字符處理函數3. trim()

如果面對的是英文字符,那麼trim()應該就滿足了,但是對於中文字符,就應該重寫以trim掉全角的空格:

Java代碼

  1. function cntrim($value){   
  2. return trim(ereg_replace("^(
     )*|( )*$","", $value));   
  3. }   
  4.  
  5. function cntrim($value){  
  6. return trim(ereg_replace("^( 
    )*|( )*$","", $value));  
  7. }  

PHP字符處理函數4. empty():

這個就有點像上面那個in_array()了,如果你要判斷一個textarea裡面是否有值,不能光使用empty,因為'0'字符串也會返回empty(但奇怪的是'00'就不會返回empty),重寫以應對這種情況:

Java代碼

  1. function non_szero_empty
    ($value){   
  2. return empty($value) && 
    $value != '0';   
  3. }   
  4.  
  5. function non_szero_empty
    ($value){  
  6. return empty($value) &&
     $value != '0';  
  7. }  

PHP字符處理函數5. htmlentities():

與strtolower()類似,htmlentities也會出現一些轉義gbk字符的問題,以致出現亂碼。索性這樣替換:

Java代碼

  1. function _myhtmlentities($value){   
  2. //$value = preg_replace('/&
    ((#(d{3,5}|x[a-fA-F0-9]{4})|
    [a-zA-Z][a-z0-9]{2,5});)/', '&\1'
    , str_replace(array('&', '"', '< ', '>')
    , array('&amp;', '&quot;', '&lt;', 
    '&gt;'), $value));   
  3. $value = str_replace(array('&', '"', 
    '< ', '>'), array('&amp;', '&quot;', 
    '&lt;', '&gt;'), $value);   
  4. return $value;   
  5. }   
  6. function _myhtmlentities($value){  
  7. //$value = preg_replace('/&amp;((#(
    d{3,5}|x[a-fA-F0-9]{4})|[a-zA-Z][a-
    z0-9]{2,5});)/', '&\1', str_replace
    (array('&', '"', '< ', '>'), array(
    '&amp;', '&quot;', '&lt;', '&gt;'), $value));  
  8. $value = str_replace(array('&', '"', 
    '< ', '>'), array('&amp;', '&quot;', 
    '&lt;', '&gt;'), $value);  
  9. return $value;  

不過現在還在疑惑為什麼htmlentities會出現亂碼,這樣改為什麼又可行。計劃有時間看源代碼一探究竟。

以上就是我們這次要向大家介紹的PHP字符處理函數的全部內容。


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved