| 導購 | 订阅 | 在线投稿
分享
 
 
 

PHP5.2下preg_replace函數的問題

來源:互聯網  2008-12-22 08:10:24  評論

preg_replace 使用的超過了php5.2默認允許的字節

也就是pcre.backtrack_limit和pcre.recursion_limit的大小的問題。

Discuz!6.0.0正式版程序發布以來,大家都熱火朝天的升級中,但是部分插件在6.0下出現了問題

比如http://www.discuz.net/viewthread.php?tid=559133這個銀行插件

在php爲5.2.0及以上的環境下安裝以後會出現白屏的問題

從Discuz!用戶的角度考慮,我們需要去協助插件作者解決這個問題

下面說下我的解決過程,希望能給大家一些建議吧

第一:此插件在5.5的情況下可以正常運行,但是6.0下就白屏了

Discuz!6.0爲了增加模板緩存文件的可讀性,增加了緩存文件的縮進,而確實修改過部分templates.func.php的模板處理部分,

莫非是這個原因?開始我初步確定是這裏的問題,因爲用5.5的部分代碼替換修改過的代碼,就表現正常,但是很郁悶的沒有找到原因

第二步:懷疑是bank.htm這個模板書寫格式的問題,于是我很郁悶的開始分析模板,說實話,模板大了分析起來真的很頭疼。結果顯然又沒有找到原因。比較郁悶的說

第二步:然後發現將此模板拆分以後,就正常執行了,這時候我初步懷疑是不是正則匹配的bug在大數據量的時候出現了錯誤,于是我就上bugs.php.net開始搜索了http://bugs.php.net/search.php?c … ace&x=3&y=5在這裏找啊找啊找,于是終于找到了這裏http://bugs.php.net/bug.php?id=39405,突然間發現居然是5.2配置的問題,在調整大pcre.backtrack_limit和pcre.recursion_limit之後問題解決

之所以寫這麽詳細就是想一起分享下我解決問題的思路:)

preg_replace 使用的超過了php5.2默認允許的字節 也就是pcre.backtrack_limit和pcre.recursion_limit的大小的問題。 Discuz!6.0.0正式版程序發布以來,大家都熱火朝天的升級中,但是部分插件在6.0下出現了問題 比如[url=http://www.discuz.net/viewthread.php?tid=559133]http://www.discuz.net/viewthread.php?tid=559133[/url]這個銀行插件 在php爲5.2.0及以上的環境下安裝以後會出現白屏的問題 從Discuz!用戶的角度考慮,我們需要去協助插件作者解決這個問題 下面說下我的解決過程,希望能給大家一些建議吧 第一:此插件在5.5的情況下可以正常運行,但是6.0下就白屏了 Discuz!6.0爲了增加模板緩存文件的可讀性,增加了緩存文件的縮進,而確實修改過部分templates.func.php的模板處理部分, 莫非是這個原因?開始我初步確定是這裏的問題,因爲用5.5的部分代碼替換修改過的代碼,就表現正常,但是很郁悶的沒有找到原因 第二步:懷疑是bank.htm這個模板書寫格式的問題,于是我很郁悶的開始分析模板,說實話,模板大了分析起來真的很頭疼。結果顯然又沒有找到原因。比較郁悶的說 第二步:然後發現將此模板拆分以後,就正常執行了,這時候我初步懷疑是不是正則匹配的bug在大數據量的時候出現了錯誤,于是我就上bugs.php.net開始搜索了[url=http://bugs.php.net/search.php?c]http://bugs.php.net/search.php?c[/url] … ace&x=3&y=5在這裏找啊找啊找,于是終于找到了這裏[url=http://bugs.php.net/bug.php?id=39405]http://bugs.php.net/bug.php?id=39405[/url],突然間發現居然是5.2配置的問題,在調整大pcre.backtrack_limit和pcre.recursion_limit之後問題解決 之所以寫這麽詳細就是想一起分享下我解決問題的思路:)
󰈣󰈤
王朝萬家燈火計劃
期待原創作者加盟
 
 
 
>>返回首頁<<
 
 
 
 
 熱帖排行
 
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有