-
<script>');<br /><br /> if(ismozilla()) {<br /> $text = preg_replace("/(?<!<br>|<br \/>|\r)(\r\n|\n|\r)/", ' ', $text);<br /> }<br />只列出了一部分代码。<br /><br />上面的ismozilla函数是用来判断火狐浏览器的,代码如下<br /><br />function ismozilla() {<br /> $useragent = strtolower($_SERVER['HTTP_USER_AGENT']);<br /> if(strpos($useragent, 'gecko') !== FALSE) {<br /> preg_match("/gecko\/(\d+)/", $useragent, $regs);<br /> return $regs[1];<br /> }<br /> return FALSE;<br />}<br /><br />大家看到红色部分的代码了吧,不明白的是,为什么火狐浏览器就要把换行全部干掉?这到底是为什么?<br /><br />我写了一个计划任务触发的发帖程序,估计是被其他东西触发了,发出来的帖子经过那个函数转换之后,全部没有换行。<br /><br />在使用html2bbcode函数之前这样定义了:<br />$_SERVER['HTTP_USER_AGENT'] = 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.75 Safari/535.7 360EE';<br />但是发出来的帖子还是没有换行,也不知道如何解决才好,说也奇怪,discuz定义了这个函数,可是整站却没有一处地方用到,奇怪得很。<br><br /><font color='#e78608'>------解决方案--------------------</script>
写码的不止一个人。做的走了,来的人改了。到最后就是成了码渣了,横流在码中央。搜索一下,没有用到,只能说明,重构的时候忘了去掉了
------解决方案--------------------
这是一个将 HTML 标记转换成 BBCode 的函数,在 discuz 中没有地方需要这种功能
你若怀疑是这个函数作怪,那么就将红色的部分注释掉
------解决方案--------------------
问题在于:虽然你修改了那个函数,却发现问题依旧
------解决方案--------------------
可能是 为css做的 判断!!!