首页 > 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字符处理函数的全部内容。


本文地址:http://www.phprm.com/frame/php1003742.html

转载随意,但请附上文章地址:-)

标签:none

发表留言