PHP中有哪些字符处理函数,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
PHP字符处理函数1. in_array()函数
Java代码
$zero = "0";
$za = array("00");
if(in_array($zero, $za, true)){
echo 'in';
}else{
echo 'not in';
}
$zero = "0";
$za = array("00");
if(in_array($zero, $za, true)){
echo 'in';
}else{
echo 'not in';
}
这段代码应该输出什么?答案是in,而不是not in。
然后测试一下这个:
Java代码
$zero = "0"; $za = array("00"); if("0" == "00"){ echo '0 == 00'; } $zero = "0"; $za = array("00"); if("0" == "00"){ echo '0 == 00'; }
返回'0'=='00'。
所以以后要注意:对于字符串不是说in,就表示那个字符在array里面。
PHP字符处理函数2. strtolower()函数
我的解决方式是:
Java代码
urldecode(strtolower
(urlendoce($str)));
urldecode(strtolower
(urlendoce($str)));
PHP字符处理函数3. trim()
如果面对的是英文字符,那么trim()应该就满足了,但是对于中文字符,就应该重写以trim掉全角的空格:
Java代码
function cntrim($value){
return trim(ereg_replace("^(
)*|( )*$","", $value));
}
function cntrim($value){
return trim(ereg_replace("^(
)*|( )*$","", $value));
}
PHP字符处理函数4. empty():
这个就有点像上面那个in_array()了,如果你要判断一个textarea里面是否有值,不能光使用empty,因为'0'字符串也会返回empty(但奇怪的是'00'就不会返回empty),重写以应对这种情况:
Java代码
function non_szero_empty
($value){
return empty($value) &&
$value != '0';
}
function non_szero_empty
($value){
return empty($value) &&
$value != '0';
}
PHP字符处理函数5. htmlentities():
与strtolower()类似,htmlentities也会出现一些转义gbk字符的问题,以致出现乱码。索性这样替换:
Java代码
function _myhtmlentities($value){
//$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('&', '"', '<',
'>'), $value));
$value = str_replace(array('&', '"',
'< ', '>'), array('&', '"',
'<', '>'), $value);
return $value;
}
function _myhtmlentities($value){
//$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(
'&', '"', '<', '>'), $value));
$value = str_replace(array('&', '"',
'< ', '>'), array('&', '"',
'<', '>'), $value);
return $value;
}
看完上述内容,你们掌握PHP中有哪些字符处理函数的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网行业资讯频道,感谢各位的阅读!