trim()无法去除的空格,chr(161)。用户提交文章总是出现。 用户POST提交字符串content内容写入数据库之前都会有trim去除每行的前后空格,可是看到的有的提交写入到数据库的内容还是有些段落前面有一小段空格。怎么都去除不掉。他不是\s也不是\n\r\0,用ord()函数查询他的值等于 161.但是如何去除开头的这个空。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 插入数据库前把文字的格式设置成UTF-8无BOM格式编码试一下 http://www.php.net/trim 不是。提交的都是纯中文的,但是回车之后开头有一个空的。不是chr(32),ord查看的是161,如果把每行的这个chr(161)去掉,很多文字却也被去掉了。测试代码:<?php$str = "【深】 【深圳景天。 .1这个点前面有一段ord()==161的,2,此段落开头也有 【深产品。 .1这个点前面有一段ord()==161的,2,此段落开头也有 【深】等。";echo strpos($str,chr(161)) === FALSE ? "my":"you";$str = preg_replace("/([ \t\.\-]+)/","",$str);$arr = explode("\n",$str);$count=0;$type1 = $type2 = "";foreach ($arr as $line){ $count++; //第二种过滤 $line1 = trim( $line ); $line2 = trim( $line1,chr(161) ); $type1 .= "{$count}:\t[{$line1}]\n"; $type2 .= "{$count}:\t[{$line2}]\n";}echo "\n//第一种情况结果:\n";echo $type1;echo "\n//第二种情况结果:\n";echo $type2;echo "\n他的ord值是这个[".ord(" ")."],不是32";输出结果:X-Powered-By: PHP/5.2.0Content-type: text/htmlyou//第一种情况结果:1: [【深】]2: [ 【深圳景天。 1这个点前面有一段ord()==161的,2,此段落开头也有]3: []4: [ 【深产品。 1这个点前面有一段ord()==161的,2,此段落开头也有]5: []6: [ 【深】等。]//第二种情况结果:1: [旧睢縘2: [旧钲诰疤臁! �1这个点前面有一段ord()==161的,2,此段落开头也有]3: []4: [旧畈贰! �1这个点前面有一段ord()==161的,2,此段落开头也有]5: []6: [旧睢康取他的ord值是这个[161],不是32 "【"这个符号,GBK下,ascii码值就是0xa1be,应该不是这个数据的问题。数据入库,请确认脚本的编码格式跟数据库表的编码格式是否一致。不一致就可能会有乱码出现。最好用UTF-8。 救命啊,php奇怪问题 查了google,及国内外大大小小的论坛,还质询了空间服务商。问题依然。 有没有交流PHP的群啊? 配置好PHP,执行时发生错误The specified module could not be found. 【问题】php是否支持条件编译 如何在程序中设置PHP的SESSION时效!! [[紧急]]phpadmin和Mysql的讨厌问题 兄弟们,俺又开始工作了! 用php怎么写自动生成html的新闻系统? 一个关于表单提交的问题,高分,在线等候. 各位,有没有用php实现webservice的教程 怎么样做实时网页
不是。提交的都是纯中文的,但是回车之后开头有一个空的。不是chr(32),ord查看的是161,如果把每行的这个chr(161)去掉,很多文字却也被去掉了。测试代码:<?php
$str = "【深】
【深圳景天。 .1这个点前面有一段ord()==161的,2,此段落开头也有 【深产品。 .1这个点前面有一段ord()==161的,2,此段落开头也有 【深】等。";echo strpos($str,chr(161)) === FALSE ? "my":"you";
$str = preg_replace("/([ \t\.\-]+)/","",$str);
$arr = explode("\n",$str);$count=0;
$type1 = $type2 = "";
foreach ($arr as $line)
{
$count++;
//第二种过滤
$line1 = trim( $line );
$line2 = trim( $line1,chr(161) );
$type1 .= "{$count}:\t[{$line1}]\n";
$type2 .= "{$count}:\t[{$line2}]\n";
}
echo "\n//第一种情况结果:\n";
echo $type1;echo "\n//第二种情况结果:\n";
echo $type2;
echo "\n他的ord值是这个[".ord(" ")."],不是32";
输出结果:X-Powered-By: PHP/5.2.0
Content-type: text/htmlyou
//第一种情况结果:
1: [【深】]
2: [ 【深圳景天。 1这个点前面有一段ord()==161的,2,此段落开头也有]
3: []
4: [ 【深产品。 1这个点前面有一段ord()==161的,2,此段落开头也有]
5: []
6: [ 【深】等。]//第二种情况结果:
1: [旧睢縘
2: [旧钲诰疤臁! �1这个点前面有一段ord()==161的,2,此段落开头也有]
3: []
4: [旧畈贰! �1这个点前面有一段ord()==161的,2,此段落开头也有]
5: []
6: [旧睢康取他的ord值是这个[161],不是32
数据入库,请确认脚本的编码格式跟数据库表的编码格式是否一致。不一致就可能会有乱码出现。
最好用UTF-8。