簡體   English   中英

PHP - 驗證胡子模板

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM