この記事では、主に PHP の preg_match 関数の正規マッチングの文字列長の問題を紹介します。preg_match 正規マッチングの文字列長の問題も発生する場合、常に空白になるか、空白になります。もしそうなら、あなたはこの問題に遭遇しているかもしれません。
プロジェクトでは、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'); より安全です。
。