我正在尝试使用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();
然后将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编码。有什么办法吗?
答案 0 :(得分:3)
我不知道如何避免这种百分比编码。
解决此问题的一种方法是在保存之前替换编码字符,例如
compile 'com.google.firebase:firebase-database:9.8.0'
答案 1 :(得分:0)
所以我目前唯一的答案就是在使用preg_replace将其发送到TWIG文件之前修改$ pageHtml:
insert
第一行将替换起始资产标记,第二行将替换最终资产,并将执行css,javascript以及可能使用资产标记的任何其他区域。
我觉得这不是最干净的选择,但目前它是我能找到的最干净的选择。如果有人能提出更好的选择,我会将其作为答案。