gpt4 book ai didi

php - 缩小 HTML 输出,但保留某些标签

转载 作者:行者123 更新时间:2023-12-04 05:12:45 25 4
gpt4 key购买 nike

我正在开发一个函数,通过去除不必要的空格、换行符和制表符以及其中的注释来缩小页面的 HTML 代码。
但是,我想保留以开头的标签

 "<!-- google_ad_section... -->"

因为他们告诉谷歌我页面的哪些部分要强调。

我当前用于修剪代码的代码片段是这个,可以在这个很棒的网站的另一个地方找到。我了解参数编码以意识到第二个参数的第一部分清除所有评论..但是如何保留包含“google_ad_section”字符串的所有标签?
function sanitize_output2($buffer){
return preg_replace(
array(
'/ {2,}/',
'/<!--.*?-->|\t|(?:\r?\n[ \t]*)+/s'
),
array(
' ',
''
),
$buffer
);
}

最佳答案

这个解决方案怎么样:

  • 通过 DOMDocument 运行您的 HTML
  • 使用选项 preserveWhiteSpacefalse删除所有多余的空格
  • 过滤所有与您需要的评论不一样的评论

  • 也许它看起来像这样:
    $html = '<html>[…]</html>';

    $doc = new DOMDocument;
    $doc->preserveWhiteSpace = false;
    $doc->loadHtml($html);

    $xpath = new DOMXPath($doc);
    $comments = $xpath->query('//comment()');
    foreach ($comments as $comment) {
    if (!preg_match('/^google_ad_section /', $comment->nodeValue)) {
    $comment->parentNode->removeChild($comment);
    }
    }

    $html = $doc->saveHTML();

    我是用心写的,没有测试。所以也许它不是 100% 准确的。

    关于php - 缩小 HTML 输出,但保留某些标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14691519/

    25 4 0