用户
 找回密码
 入住 CI 中国社区
搜索
查看: 4385|回复: 5
收起左侧

[讨论/交流] 分享一下CI2.0使用中,使用nl2br处理后输出两个br标签的问题.

[复制链接]
发表于 2011-3-15 13:38:16 | 显示全部楼层 |阅读模式
多亏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里要多此一举用大换行....估计以后也许也有人会遇到,先写出来给大家参考下
VXJLT1A11B7R5GE1)CJ6DZF.jpg
$S()@6$W2`WH(FHNRW~1GKT.jpg
改写前后对比

评分

参与人数 1威望 +2 收起 理由
Hex + 2 原创内容

查看全部评分

发表于 2011-3-15 13:44:27 | 显示全部楼层
暂时还没用2.0,谢谢楼主分享经验。
不过我建议,修改system里面的文件,不如直接复制一个出来,然后继承原来的类,删除掉其他代码行,只留相关的那部分。日后升级CI,才不会因为疏忽直接覆盖掉这些修改过的文件。
 楼主| 发表于 2011-3-15 13:48:01 | 显示全部楼层
呵呵,这个我觉得没必要,因为2.0的这个改动本来就很多此一举
反而容易引起其他的问题,其他的帖子里也提到了这个问题,不清楚2.0作者为什么要这样弄....
发表于 2011-3-16 16:14:15 | 显示全部楼层
标记一下...以后看看用不用得到.
发表于 2011-3-19 19:58:39 | 显示全部楼层
继续用1.73
发表于 2011-3-20 16:59:29 | 显示全部楼层
我的ci2连换行都没有。

本版积分规则