开放的编程资料库

当前位置:我爱分享网 > PHP教程 > 正文

使用 DOMDocument 通过 PHP 修改 HTML

当您想要在网站上实施 Service Worker 时,您首先要了解的事情之一是该网站需要 SSL(一个

https

地址)。自从我看到服务人员可以提供令人眼花缭乱的速度的网站后,我就一直着迷于为 SSL 准备好我的网站。使用

强制执行 SSL.htaccess

很简单——困难的部分是更新博客内容中的资产链接。一开始,您觉得正则表达式似乎是速效药,但任何有使用正则表达式经验的人都知道使用 URL 是一场噩梦,而正则表达式可能是错误的决定。正确的决定是

DOM文档

,一个本地 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://davidwalsh.name', 
                  'https://davidwalsh.name', 
                  $tag->getAttribute('src')
      )
    );
  }
  return $document->saveHTML();
}

在我上面的例子中,我找到了所有

img

元素并将其协议替换为

https://

.我最终会用

做同样的事情iframe 源代码

,

一个 href

和其他一些很少使用的标签。修改完成后,我调用

保存HTML

来获取新的字符串。不要陷入尝试将正则表达式与 HTML 结合使用的陷阱——您将面临失败。 DOMDocument 是轻量级的,将使您的代码更易于维护。

未经允许不得转载:我爱分享网 » 使用 DOMDocument 通过 PHP 修改 HTML

感觉很棒!可以赞赏支持我哟~

赞(0) 打赏