[英]PHP - validate mustache template
如何在PHP中驗證胡子模板字符串? 例如,如果我通過
Hi {{#name}}{{name}}{{/name}}{{^name}}guest{{/name}}
並且驗證器應該返回有效,但是如果我通過了
Hi {{#name}}{{name}}{{/name}}{{^name}}guest
它應該返回無效。
注意我寧願這完全在PHP中完成,沒有Mustache_Engine
或任何其他第三方依賴。
只需編譯它:
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;
}
如果不構建胡子解析器,則無法正確驗證所有有效的胡須模板。 沒有正則表達式快捷方式。 你需要一個真正的解析器。
如果您對某些假陰性(以及一些誤報)感到滿意,您可以構建一些東西來驗證它們的一部分。 或者你可以構建一個合適的解析器。 但最好的辦法是使用mustache.php來解析它,如其他答案所示。
你為什么試圖這樣做而沒有任何依賴?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.