【问题标题】:PHP (Regex) code to remove a Div with a specific ID用于删除具有特定 ID 的 Div 的 PHP(正则表达式)代码
【发布时间】:2011-07-06 13:07:24
【问题描述】:

如何使用 PHP 正则表达式代码在已报废的页面中删除这些内容并用任何内容替换它?

<div id="news-id-245245" style="display:inline;">

我也没有在页面的任何其他部分使用 div 的 ID,因此如果模式简单地删除所有带有 ID 标记的 DIV,它也将起作用。

div的id始终如下:“news-id-NUMBER”

【问题讨论】:

  • 看起来我让它工作了,我不确定这是否有意义,但我确实设法摆脱了suck Divs $content = preg_replace('/
    /s', '', $content);
  • 为了管理 HTML 文档,你也可以试试 DOMElements (php.net/manual/en/class.domdocument.php)。它肯定会为您的项目添加更多代码,但它会让您更好地控制文档。

标签: php regex html tags


【解决方案1】:

关于您的评论“我不确定这是否有意义”:因为它有效,所以它是有道理的。我稍微简化了您的解决方案;我们不需要.*? 周围的括号。 (我们确实需要?,除非$content 中只有一个匹配项。)

$content = preg_replace('/<div id="news-id-.*?" style="display:inline;">/s', '', $content);

【讨论】:

    【解决方案2】:

    我不认为 RegEx 在这里是一个选项,您必须专门调用它。例如:

    <?php
       echo "<style>#news-id-NUMBER{display:none;}</style>";
    ?>
    

    【讨论】:

    • 感谢您的回答。 NUMBER 是一个我事先无法知道的随机数,因此如果我要使用您的答案,我需要一个模式来删除所有数字,但这似乎非常有用,我宁愿让它工作而不是检查内容并删除 DIV .像这样的东西不会起作用吗? preg_replace('/
      ]+id="'.preg_quote($id, '/').'"[^>]*>(.*?)/s', '' , $result[1]);
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签