我發現如果我嘗試在很長的字符串上使用preg_replace,PHP會向我的瀏覽器返回一個空白頁面,而不會顯示錯誤消息。我能夠在我的測試環境中重現此錯誤。 preg_replace可以處理的字符串的最大長度是多少?可以增加這個長度嗎?PHP中preg_replace()的字符串的最大長度?
回答
沒有任何。只要你的腳本數據適合內存 - 它會工作。
腳本數據可能,但正則表達式可能會進入回溯死亡螺旋。 – 2012-08-02 04:08:28
@Marc乙:意味着所有的數據 - 無論是隱式還是顯式管理。並且在內部問題的情況下 - 它仍然會因內存不足而死亡 – zerkms 2012-08-02 04:21:18
empty page = display_errors off和whatnot。 – 2012-08-02 04:24:16
我遇到了這個問題太多,使用此正則表達式(我發現它的地方,我不記得了):
'~\[quote(?:=([^\]]+))?\]((?:(?R)|.)*?)\[/quote\]~s'
這是用來代替嵌套報價BBcodes,使用(R?)遞歸模式修飾符。
當引號之間的字符串接近300個字符(這確實很少)時,我會在瀏覽器中看到一個「Reset connexion」。 Apache或PHP的錯誤日誌中沒有任何內容(我正在使用PHP 5.4.16運行Wampserver 2.4)。 (?R)experimental facility。 對這個職位:PHP, nested templates in preg_replace,存在與(R?),它詳細地進行說明,這使我的作品在更長串的解決方案正則表達式:
'%\[quote(?:=([^\]]+))?\]((?:[^[]*(?:\[(?!/?quote(?:=[^\]]+)?\])[^[]*)*|(?R))*)\[/quote\]%x'
希望它能幫助。 乾杯
對於4M以上的$模式匹配字符串,我也是這樣。 可能您將不得不使用ini_set()或編輯php.ini來增加pcre.backtrack_limit。
去年錯誤檢查預浸:
$retval = preg_replace ($pattern, $replacement, $subject);
if ($retval === null) {
// see http://php.net/manual/en/function.preg-last-error.php
echo preg_last_error();
}
- 1. 字符串的最大長度[]
- 2. 限制字符串的最大長度
- 3. Javascript:最大字符串長度Chrome
- 4. 最大默認長度xsd字符串
- 5. 與最大長度字符串類型
- 6. 查找最長字符串的長度
- 7. UUID最大字符長度
- 8. PHP Preg_replace字符串
- 9. PHP preg_replace字符串
- 10. PHP的preg_replace URL字符串
- 11. 字符串到數組,最大長度,字符中斷
- 12. 增加的Excel printArea中的最大字符串長度
- 13. 德爾福屬性中的字符串的最大長度TMemo
- 14. Solr的字符串字段的最大長度
- 15. 字符串的長度比字符串的長度長
- 16. PHP字符串長度
- 17. 設置Zend ValidatorRules的最大和最小字符串長度
- 18. Firefox中字符串首選項的最大長度?
- 19. 在Swift 2.0中,字符串的最大長度是多少?
- 20. json中的最大字符串參數長度
- 21. 「.bat」或「.cmd」中字符串的最大長度是多少?
- 22. AJAX GET請求中查詢字符串的最大長度?
- 23. Excel中PrintArea的最大字符串長度
- 24. PostgreSQL中強制字符串的最大長度
- 25. Java中的子字符串 - 長度最大值
- 26. 字符數組的最大長度
- 27. 帶最大字符長度的silverstripe HtmlEditorField?
- 28. 字符串字段的最大允許長度
- 29. 給定字節數的最大字符串長度
- 30. 使用Python查找字符串中大寫字母的最長長度
「我能夠重現此錯誤在我的測試環境」 ---在這裏展示的劇本我用從這裏下載的功能 – zerkms 2012-08-02 03:18:34
:HTTP:// nadeausoftware.com/articles/2007/9/php_tip_how_strip_punctuation_characters_web_page 我記得之前我使用正則表達式從HTML文件中提取數據時發生了這個問題,所以它不是正則表達式的問題。 – 2012-08-02 03:34:17
那麼現在的問題是什麼呢? – zerkms 2012-08-02 03:51:20