ホームページ >バックエンド開発 >PHPチュートリアル >PHPのpreg_match関数による正規マッチングの文字列長問題、phppreg_match_PHPチュートリアル
プロジェクトでは、preg_matchを使用して対象のコンテンツを抽出しています。コードはデッド・オア・アライブです。
後で、PHP の preg_match には文字列の長さ制限があるのではないかと思いましたが、案の定、「pcre.backtrack_limit」の値はデフォルトで 100000 にのみ設定されていることがわかりました。
解決策: ini_set('pcre.backtrack_limit', 999999999);
注: このパラメータは、PHP 5.2.0 バージョン以降で使用できます。
pcre.recursion_limit についても話しましょう
pcre.recursion_limit は PCRE の再帰制限です。この項目を大きな値に設定すると、すべてのプロセスの使用可能なスタックが消費され、最終的には PHP がクラッシュします。
設定を変更して制限することもできます:ini_set('pcre.recursion_limit', 99999);
実際のプロジェクト アプリケーションでは、メモリを制限するのが最善です: ini_set('memory_limit', '64M'); これはより安全です。