PHP5.2下preg_replace函數的問題_PHP教程

來源:互聯網
上載者:User

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之後問題解決

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

http://www.bkjia.com/PHPjc/508224.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/508224.htmlTechArticlepreg_replace 使用的超過了php5.2預設允許的位元組 也就是pcre.backtrack_limit和pcre.recursion_limit的大小的問題。 Discuz!6.0.0正式版程式發布以來,大家都...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.