ホームページ > バックエンド開発 > PHPチュートリアル > テンプレート エンジンの正規表現デバッグのヒント_PHP チュートリアル

テンプレート エンジンの正規表現デバッグのヒント_PHP チュートリアル

WBOY
リリース: 2016-07-21 15:26:45
オリジナル
940 人が閲覧しました

正規表現置換に基づくテンプレート エンジンは、正規表現のバックトラッキング/再帰の最大制限に簡単に遭遇する可能性があります。
通常の状況では、遅延マッチングはひどいものではなく、Discuz のテンプレート エンジンが広く使用されている制限を超えることはありません。しかし、注意を払わずに勉強しないと、簡単に間違いを犯したり、問題に遭遇したりするでしょう。
preg_* が null を返す場合、判定関数は is_null であることに注意してください。
間違いはひどいことではありませんが、デバッグを容易にするために、すべてのエラーを完全に出力するのが最善です。
エラーの原因を出力するだけでなく、一致したテキストや使用した正規表現も出力するため、デバッグが容易です。
PHP コード

コードをコピー コードは次のとおりです:

if (is_null($tmp)){
$error_code = preg_last_error(){
switch($error_code){
ケース PREG_NO_ERROR :
エコー 'PREG_NO_ERROR';
ケース PREG_INTERNAL_ERROR '
エコー 'PREG_BACKTRACK_LIMIT_ERROR'; _LIMIT_ERROR:
エコー 'PREG_RECURSION_LIMIT_ERROR';
ケース PREG_BAD_UTF8_ERROR:
エコー'PREG_BAD_UTF8_ERROR';
ブレーク; ケースPREG_BAD_UTF8_OFFSET_ERROR'
ブレーク;
}

参考文献

1、2010、Laruence
「規則性の最大バックトラッキング/再帰制限(pcre)を理解する」

2、2011、PHP中国語マニュアル
preg_last_error





http://www.bkjia.com/PHPjc/323933.html

www.bkjia.com

tru​​e
http://www.bkjia.com/PHPjc/323933.html技術記事
正規表現置換に基づくテンプレート エンジンは、正規表現のバックトラッキング/再帰の最大制限に簡単に遭遇する可能性があります。 遅延マッチングはひどいことではありません。通常の状況では、テンプレートが不足することはありませんし、不足しないこともよくあります...

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