建站教程

建站教程

Products

当前位置:首页 > 建站教程 >

使用 DOMDocument 使用 PHP 修改 HTML

GG网络技术分享 2025-03-18 16:08 0


当你想在一个网站上实现一个服务工作者时,你学到的第一件事就是该网站需要 SSL(一个 https 地址)。 自从我看到服务人员可以提供网站的惊人速度以来,我一直痴迷于为我的网站准备 SSL。 使用 SSL 强制执行 SSL .htaccess 很简单——困难的部分是更新博客内容中的资产链接。 一开始您会觉得正则表达式似乎是一种快速的治疗方法,但任何有正则表达式经验的人都知道使用 URL 是一场噩梦,而正则表达式可能是错误的决定。 正确的决定是 DOMDocument,这是一个原生 PHP 对象,它允许您以合乎逻辑的、愉快的方式使用 HTML。 首先将 HTML 加载到 DOMDocument 实例中,然后使用其可预测的函数来实现。

// Formats post content for SSL

function format_post_content($content="") {

$document = new DOMDocument();

// Ensure UTF-8 is respected by using 'mb_convert_encoding'

$document->loadHTML(mb_convert_encoding($content, 'HTML-ENTITIES', 'UTF-8'));

$tags = $document->getElementsByTagName('img');

foreach ($tags as $tag) {

$tag->setAttribute('src',

str_replace('http://www.ggplus.cn',

'https://www.ggplus.cn',

$tag->getAttribute('src')

)

);

}

return $document->saveHTML();

}

在我上面的例子中,我发现所有 img 元素并将其协议替换为 https://. 我最终会做同样的事情 iframe src, a href,以及其他一些很少使用的标签。 当我的修改完成后,我打电话给 saveHTML 获取新字符串。 不要陷入尝试在 HTML 中使用正则表达式的陷阱——您将面临失败的未来。 DOMDocument 是轻量级的,将使您的代码无限地更易于维护。

标签:

提交需求或反馈

Demand feedback