首頁 >後端開發 >php教程 >discuz的ismozilla函数,该如何解决

discuz的ismozilla函数,该如何解决

WBOY
WBOY原創
2016-06-13 10:24:29859瀏覽

discuz的ismozilla函数
这么晚了,不知道还有没有人在,小弟半夜遇到一个问题,百思不得其解,请各位路过大神指点一二,不胜感激。

discuz有个函数是将html代码转换成ubb代码的,看代码

function html2bbcode($text) {
$text = strip_tags($text, '

    • discuz的ismozilla函数,该如何解决

      <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做的 判断!!!

    陳述:
    本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn