2015年12月15日实习总结

今天遇到一个相当头疼的bug,在数据库的文章内容字段莫名其妙的多出来两个空格。


就像这样,到底这是为什么呢? OK,查看源码

div class="left_text_con" id="text_content"><p style="text-indent:2em;">  为进一步做好临沂新形势下就业工作,山东临沂出台了《临沂市实施就业优先战略行动方案》,2015-2018年,力争每年实现城镇新增就业8万人,其中失业人员再就业3.2万人,就业困难人员就业6000人;并将实施“千名公益性岗位”开发计划,实现城乡零就业家庭动态消零。</p>
<p style="text-indent:2em;">  开发“千名公益性岗位”</p>

就是每个段落前边的两个空格,到底是什么呢这个,经测试,不是空格,不是table换行(如果是空格或是table的话,html会自动消除),折腾半天,终于发现了,原来是两个圆角的空格字符。

OK,问题找到了,接下来就是解决掉它了,然后我就开始想怎么去除去这两个讨厌的家伙呢,百度上查到,圆角空格的编码为”\xe3\x80\x80”;于是我就这样写。

$space = "\xe3\x80\x80";
$name = str_ireplace($space,"",$name);

然后测试,发现完全没变化。what the fuck,什么鬼这是?然后我就一步一步输出,一步一步测试,然而并没有什么用,于是我在本地写了一个测试文件,出乎意料的是在本地的测试文件中可以过滤掉这两个字符,但是一到项目中就失效了,是不是字符串的问题?输出!不是!

那究竟是哪的问题呢?后来终于找到了问题所在,原来要改的网站有将近十年的历史了,用的是gbk编码,我行走江湖,谨慎小心,时时注意乱码问题,没想到还是栽在了编码上。

最后其实就两行代码就解决掉了

$space = "  ";
$name = str_ireplace($space,"",$name);

竟然用了两个小时才解决掉,惭愧啊。

顺便总结一下今天所学:

SQL语句执行顺序: 1、from 2、where 3、group by 4、having 5、select 6、order by;
join on 方法的使用;
str_replace()区分大小写替换;
str_ireplace()不区分大小写替换;
implode()字符转数组;
explode()数组转字符串;
thinkphp 的空方法用 php 魔术方法实现。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值