今日、問題を確認していて、正規表現を使用して文字列からコンテンツを抽出できませんでした。文字列と正規表現を繰り返し確認しましたが、問題はありませんでした。再度テストするために小さなスクリプトを作成しましたが、問題はありませんでした。コードに戻ってデバッグしましたが、再び失敗しました。
文字列は比較的長いので、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
Coders Say からの抜粋