ホームページ  >  記事  >  バックエンド開発  >  PHPの通常の長さ制限

PHPの通常の長さ制限

巴扎黑
巴扎黑オリジナル
2016-11-24 09:52:421310ブラウズ

シナリオ: 正規表現を使用してページ コンテンツ (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 がクラッシュする可能性があります。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。