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

