我正在尝试使用 PHP 中的 DOM 设置一个模板,该模板将成为 TWIG 文件。因此,我设置了 DOM 并抓取了我从中获取模板的网站:
$dom = new DOMDocument('1.0');
$dom->loadHTMLFile('http://theurl.com');
然后我修改脚本的 src 并保存模板:
foreach ($domNode->childNodes as $node) {
$node->setAttribute('src', "{{ asset('path/to/asset.js') }}");
}
$pageHtml = $dom->saveHTML();
$pageHtml 然后保存为 TWIG 文件:
file_put_contents('path/to/file.twig', $pageHtml);
当我查看此文件时,我现在有脚本标记:
<script src="%7B%7B%20asset('path/to/asset.js')%20%7D%7D"></script>
我需要的是:
<script src="{{ asset('path/to/asset.js') }}"></script>
所以我需要以某种方式阻止它进行 url 编码。有办法做到这一点吗?
最佳答案
我不知道有什么方法可以避免这种百分比编码。
解决此问题的一种方法是在保存之前替换编码字符,例如
$pageHtml = $dom->saveHTML();
$pageHtml = preg_replace('|="%7B%7B%20(.*?)%20%7D%7D"|', '="{{ $1 }}"', $pageHtml);
关于php - 如何在 PHP 中使用 DOMDocument 节点的特殊字符设置属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40516387/