PHPの通常の長さ制限

巴扎黑
リリース: 2016-11-24 09:52:42
オリジナル
1315 人が閲覧しました

シナリオ: 正規表現を使用してページ コンテンツ (preg_match('/(.*)(.*)

(.*)/Uis',$str)) を照合すると、次のことが見つかります。正常に一致する場合もあれば、そうでない場合もあります。ページ構造を分析すると、変化がないことがわかります。唯一の変化はページ サイズです。

理由: PHP では、正規表現の一致する長さを制限しています。phpinfo で次のことがわかります

pcre.backtrack_limit 100000 100000
pcre.recursion_limit 100000 100000

実際には、php.ini で対応する設定を行うだけです (または、これら 2 つの値のサイズを変更します)

pcre.backtrack_limit=-1
pcre.recursion_limit=-1

添付メモ:

[Pcre]
; Perl 互換の正規表現モジュール
pcre.backtrack_limit = 100000
; PCRE のバックトラック ステップの最大数。
pcre.recursion_limit = 100000
; PCRE の最大再帰深さ。
; この値を非常に高く設定すると、プロセスのスタック領域が不足し、PHP がクラッシュする可能性があります。


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート