加油吧___ 2014-06-11 08:14 采纳率: 0%
浏览 920

PHP DOMDocument->saveHTML如何屏蔽对SRC和HREF属性的RULENCODE操作

使用
$doc=new DOMDocument();
$doc->loadHTML('file_name');
//----处理程序
......
//----处理处理程序结束

$content=$doc->saveHTML();//保存处理过的html

$doc->saveHTML时,会自动对html标签中的src和href标签进行URLENCODE处理。如何屏蔽?

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-02 04:55
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    要避免在保存为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编码的操作。

    评论

报告相同问题?