PHP中的trim函数需要注意的一个问题
作者:admin 日期:2012-04-07
trim函数在英文手册中的说明如下:
trimDescription
stringThis function returns a string with whitespace stripped from the beginning and end of str . Without the second parameter, trim() will strip these characters:
自定义一个函数用于删除字符串开始及结束处的空格,此处往trim函数中传入了第二个参数,其中包括一个半角及全角空格空格,问题就出在这儿,如果调用的时候$str是中文或日文或韩文(非数字及字母),则用ftrim2处理以后有些字符串会出现??的情况,也就是乱码了,此处一定要注意,否则会出现意想不到的结果。比如将某变量用ftrim2处理以后并保存到数据库的某个字段中,大概可能会出现两个问题,1.sql语句报错。2.sql语句不报错,但是值无法保存到数据库中或可以保存到数据库中但是结果是不正确的。
function ftrim2($str) {
$str = trim($str, " \t\n\r\0\x0B");
return $str;
}
采用第二种方式不会出现这种问题。
function ftrim2($str) {
$str = trim($str);
$str = str_replace(' ', ' ', $str); //将全角空格转换为半角空格
$str = preg_replace('/^\s*|\s*$/is', '', $str); //将开头或结尾的一个或多个半角空格转换为空
return $str;
}
下一篇: PHP中json的用法
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: php
相关日志:
广告位