今天在查一個問題,用正則從字符串中提取內容失敗,反復檢查字符串和正則表達式,都沒有問題。又寫了小腳本測試,還沒有問題,回到代碼中調試,又失敗了。
字符串比較長,因此懷疑是不是preg_match也有字符串長度限制,果然!
preg_match、preg_match_all都會有這種情況。
解決方法:
1、ini_set(‘pcre.backtrack_limit’, 1000000); //默認的只有100000
2、修改php.ini 的pcre.backtrack_limit參數,使之支持更大的字符串。加入配置:pcre.backtrack_limit=-1
摘自 編碼者說