分享一下CI2.0使用中,使用nl2br处理后输出两个br标签的问题.
多亏hex兄提醒2.0和1.72的一个改变就是在处理textarea提交数据后,将textarea里面的换行自动转换成了大换行
如果使用nl2br处理的话就会输出两个br.....这个是很头疼的.
解决方法很简单.
在system目录里的core文件夹里找到input.php,找到510行
将$str = str_replace(array("\r\n", "\r"), PHP_EOL, $str);
改成$str = str_replace(array("\r\n", ""), PHP_EOL, $str);
就OK了....
嘛,不知道为什么2.0里要多此一举用大换行....估计以后也许也有人会遇到,先写出来给大家参考下
改写前后对比 暂时还没用2.0,谢谢楼主分享经验。
不过我建议,修改system里面的文件,不如直接复制一个出来,然后继承原来的类,删除掉其他代码行,只留相关的那部分。日后升级CI,才不会因为疏忽直接覆盖掉这些修改过的文件。 呵呵,这个我觉得没必要,因为2.0的这个改动本来就很多此一举
反而容易引起其他的问题,其他的帖子里也提到了这个问题,不清楚2.0作者为什么要这样弄.... 标记一下...以后看看用不用得到. 继续用1.73 我的ci2连换行都没有。
页:
[1]