使用
$doc=new DOMDocument();
$doc->loadHTML('file_name');
//----处理程序
......
//----处理处理程序结束
$content=$doc->saveHTML();//保存处理过的html
$doc->saveHTML时,会自动对html标签中的src和href标签进行URLENCODE处理。如何屏蔽?
使用
$doc=new DOMDocument();
$doc->loadHTML('file_name');
//----处理程序
......
//----处理处理程序结束
$content=$doc->saveHTML();//保存处理过的html
$doc->saveHTML时,会自动对html标签中的src和href标签进行URLENCODE处理。如何屏蔽?
以下回答参考 皆我百晓生、券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。
要避免在保存为HTML之前对DOM文档中包含的<a>标签的href属性进行URL编码(即URLEncode),您可以手动修改<a>元素的href属性值,而不是直接调用saveHTML()方法。
首先,请确保您已经创建了一个新的DOM文档对象 $doc:
$doc = new DOMDocument();
接下来,加载原始的HTML文件,并将其保存到一个新的字符串变量 $content 中:
// 加载并保存HTML
$file = 'path_to_your_file.html';
$doc->loadHTML(file_get_contents($file));
$content = $doc->saveHTML();
现在,你可以将原始的href属性设置回其未经过URL编码的形式。例如,如果原始的href属性是 http://example.com/abc,那么你应该将它改为 http://example.com/abc。这可以防止在保存后的HTML中出现被URL编码的情况:
$doc->getElementsByTagName('a')->item(0)->setAttribute('href', 'http://example.com/abc');
最后,保存处理后的HTML文件:
// 保存处理后的HTML
$doc->saveHTML('output.html');
这样,你就可以避免了在保存HTML前对DOM文档中包含的<a>标签的href属性进行URL编码的操作。