2016-09-12 14 views
1

PHPで口髭のテンプレート文字列を検証するにはどうすればよいですか?例えば、私はPHP - ひげそりテンプレートを検証する

Hi {{#name}}{{name}}{{/name}}{{^name}}guest{{/name}} 

とを渡すとバリデータは有効で返す必要がありますが、私は

Hi {{#name}}{{name}}{{/name}}{{^name}}guest 

を渡した場合、それは無効に返す必要があります。

私はむしろMustache_Engineまたは他のサードパーティーの依存関係がないPHPで完全に行われたいと思います。

+0

短い答え:あなたのMustache Engineを書く。 (ヒント:既存のライブラリを使用する方が簡単でエラーが発生しにくい) – Kaii

答えて

0

それは正しく口ひげパーサを構築することなく、すべての有効な口ひげテンプレートを検証することはできません。正規表現のショートカットはありません。実際のパーサが必要です。

いくつかの偽陰性(およびいくつかの偽陽性)があれば、それらのサブセットを検証するために何かを構築することができます。あるいは、適切なパーサーを構築することもできます。しかし、あなたの最善の策は、他の答えに示されているように、それを解析するためにmustache.phpを使うことです。

なぜこれを依存関係なしに実行しようとしていますか?

0

ちょうどそれをコンパイルします。

function validate($template) { 
    $m = new Mustache_Engine; 
    try { 
     $m->getParser()->parse($m->getTokenizer()->scan($template)); 
     $valid = true; 
    } catch (Mustache_Exception_SyntaxException $e) { 
     $valid = false; 
    } 
    return $valid; 
} 
+0

私のコメントを更新しますが、私は他のパッケージを使用したくありません。 – Kousha

+0

あなたの質問をもう一度更新し、これまでに試したことを示してください。 –

関連する問題