preg_match 通常の文字列と一致する文字列にはいくつかの問題があります。長い文字列の場合に間違った考えを解決する方法を紹介します。
例
preg_match_all すべての接続アドレスの通常の一致文字列
コードは次のとおりです | コードをコピー |
$ymd=date("y")."/".date("m-d"); |
ただし、preg_match を使用してターゲット コンテンツを抽出するには問題があります。
コードは徹底的にテストされます。
後で、「pcre.backtrack_limit」の値がデフォルトでは 100000 にのみ設定されていることがわかりました。
解決策:
コードは次のとおりです | コードをコピー |
|
注: このパラメータは、PHP 5.2.0 以降で使用できます。
pcre.recursion_limit についても話しましょう
pcre.recursion_limit は PCRE の再帰制限です。この項目を大きな値に設定すると、すべてのプロセスの使用可能なスタックが消費され、最終的には PHP がクラッシュします。
設定を変更することで制限することもできます
コードは次のとおりです | コードをコピー |
ini_set('pcre.recursion_limit', 99999); |
実際のプロジェクト アプリケーションでは、メモリを制限することが最善です:
コードは次のとおりです | コードをコピー |
ini_set('memory_limit', '64M'); |