如何解决防止 DOMDocument 转义 html
我对 DOMDocument 有问题,当我执行 saveHTML () 时,它返回我的 HTML 代码,但在参数无效的情况下使用转义元素(我使用我替换的变量)
<h2><a href="$google_link">Link</a></h2>
成为
<h2><a href="%24google_link">Link</a></h2>
我的代码:
<?php
$dom = new \DOMDocument('1.0');
@$dom->loadHTML($text,LIBXML_HTML_NODEFDTD | LIBXML_HTML_NOIMPLIED);
// my code
$dom->encoding = 'UTF-8';
$text = html_entity_decode($dom->saveHTML(),ENT_QUOTES | ENT_COMPAT,'UTF-8');
echo $text;
解决方法
您可能希望在解析 HTML 之前替换链接。或者使用其他格式设置变量(例如:variable://google_link
)
但是,对于给定的数据,您可以使用 urldecode()
:
$text = '<h2><a href="$google_link">Link</a></h2>';
$dom = new \DOMDocument('1.0');
libxml_use_internal_errors(true);
$dom->loadHTML($text,LIBXML_HTML_NODEFDTD | LIBXML_HTML_NOIMPLIED);
$dom->encoding = 'UTF-8';
$text = $dom->saveHTML();
echo urldecode($text);
// <h2><a href="$google_link">Link</a></h2>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。