PHP5.2下preg_replace函數(shù)的問題
preg_replace 使用的超過了php5.2默認允許的字節(jié),也就是pcre.backtrack_limit和pcre.recursion_limit的大小的問題。
Discuz!6.0.0正式版程序發(fā)布以來,大家都熱火朝天的升級中,但是部分插件在6.0下出現(xiàn)了問題
比如http://www.discuz.net/viewthread.php?tid=559133這個銀行插件
在php為5.2.0及以上的環(huán)境下安裝以后會出現(xiàn)白屏的問題
從Discuz!用戶的角度考慮,我們需要去協(xié)助插件作者解決這個問題
下面說下我的解決過程,希望能給大家一些建議吧
第一:此插件在5.5的情況下可以正常運行,但是6.0下就白屏了
Discuz!6.0為了增加模板緩存文件的可讀性,增加了緩存文件的縮進,而確實修改過部分templates.func.php的模板處理部分,
莫非是這個原因?開始我初步確定是這里的問題,因為用5.5的部分代碼替換修改過的代碼,就表現(xiàn)正常,但是很郁悶的沒有找到原因
第二步:懷疑是bank.htm這個模板書寫格式的問題,于是我很郁悶的開始分析模板,說實話,模板大了分析起來真的很頭疼。結果顯然又沒有找到原因。比較郁悶的說
第二步:然后發(fā)現(xiàn)將此模板拆分以后,就正常執(zhí)行了,這時候我初步懷疑是不是正則匹配的bug在大數(shù)據(jù)量的時候出現(xiàn)了錯誤,于是我就上bugs.php.net開始搜索了http://bugs.php.net/search.php?c … ace&x=3&y=5在這里找啊找啊找,于是終于找到了這里http://bugs.php.net/bug.php?id=39405,突然間發(fā)現(xiàn)居然是5.2配置的問題,在調整大pcre.backtrack_limit和pcre.recursion_limit之后問題解決
據(jù)說將pcre.backtrack_limit=-1 in php.ini
就是無限制
之所以寫這么詳細就是想一起分享下我解決問題的思路:)
- PHP 字符串正則替換函數(shù)preg_replace使用說明
- PHP正則替換函數(shù)preg_replace和preg_replace_callback使用總結
- php正則之函數(shù) preg_replace()參數(shù)說明
- PHP 正則表達式之正則處理函數(shù)小結(preg_match,preg_match_all,preg_replace,preg_split)
- php中preg_replace_callback函數(shù)簡單用法示例
- php中使用preg_replace函數(shù)匹配圖片并加上鏈接的方法
- php正則preg_replace_callback函數(shù)用法實例
- PHP正則替換函數(shù)preg_replace()報錯:Notice Use of undefined constant的解決方法分析
- PHP中一個有趣的preg_replace函數(shù)詳解
相關文章
基于php常用函數(shù)總結(數(shù)組,字符串,時間,文件操作)
本篇文章是對php常用函數(shù)(數(shù)組,字符串,時間,文件操作)進行了詳細的總結介紹,需要的朋友參考下2013-06-06php 使用curl模擬ip和來源進行訪問的實現(xiàn)方法
下面小編就為大家?guī)硪黄猵hp 使用curl模擬ip和來源進行訪問的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-05-05