zhouli520 发表于 2011-3-15 13:38:16

分享一下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里要多此一举用大换行....估计以后也许也有人会遇到,先写出来给大家参考下


改写前后对比

tiana 发表于 2011-3-15 13:44:27

暂时还没用2.0,谢谢楼主分享经验。
不过我建议,修改system里面的文件,不如直接复制一个出来,然后继承原来的类,删除掉其他代码行,只留相关的那部分。日后升级CI,才不会因为疏忽直接覆盖掉这些修改过的文件。

zhouli520 发表于 2011-3-15 13:48:01

呵呵,这个我觉得没必要,因为2.0的这个改动本来就很多此一举
反而容易引起其他的问题,其他的帖子里也提到了这个问题,不清楚2.0作者为什么要这样弄....

as3291363 发表于 2011-3-16 16:14:15

标记一下...以后看看用不用得到.

昨夜渡轮 发表于 2011-3-19 19:58:39

继续用1.73

smartweb 发表于 2011-3-20 16:59:29

我的ci2连换行都没有。
页: [1]
查看完整版本: 分享一下CI2.0使用中,使用nl2br处理后输出两个br标签的问题.