我能够找到的针对此问题的最佳答案是使用 XSLT,但我只是不确定如何将这些答案应用于我的问题。
基本上,DOMDocument 在转义 URL 方面做得很好(在href
属性),但我实际上使用它来构建 Twig/Django 样式模板,我宁愿它不理会它们。这是一个具体的例子,说明了“问题”:
<?php
$doc = new DOMDocument();
$doc->loadHTML('<html><body>Test<br><a href="{{variable}}"></a></body></html>');
echo $doc->saveHTML();
其输出如下:
<html><body>Test<br><a href="%7B%7Bvariable%7D%7D"></a></body></html>
是否可以不进行百分比编码href
属性?
如果不可能的话directly,您能建议一个简洁可靠的解决方法吗?我正在进行其他处理,并且 DOMDocument 用法必须保留。那么也许是一个前/后处理技巧?
我对“hack”/管道胶带解决方案不满意,但这就是我目前解决问题的方式:
function fix_template_variable_tokens($template_string)
{
$pattern = "/%7B%7B(\w+)%7D%7D/";
$replacement = '{{$1}}';
return preg_replace($pattern, $replacement, $template_string);
}
$html = $doc->saveHTML();
$html = fix_template_variable_tokens($html);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)