【问题标题】:Removing all links and divs of certain class删除特定类的所有链接和 div
【发布时间】:2011-08-08 21:41:20
【问题描述】:

假设我有以下字符串(来自具有多个类似字符串的更大字符串)

$str = '<div class='testdiv remove'>randomtext</div>
<div class='testdiv'>randomtext <a href="#">randomtext</a></div>';

“删除”类是通过 javascript 函数添加的。我将如何删除“删除”类的所有元素和所有链接,以便字符串变为:

$str = '<div class='testdiv'>randomtext </div>';

我不能使用 jquery 来删除这些标签,因为我必须将其输入到 php 库函数中。我将如何删除这些?

【问题讨论】:

标签: php regex class tags


【解决方案1】:

【讨论】:

    【解决方案2】:

    使用正则表达式:)

    $pattern = "/(?:<div class='testdiv remove'>[\s\S]+?</div>|<a[^>]+>[^<]+</a>)/i"
    $str = preg_replace($pattern, "", $str);
    

    【讨论】:

    • 请不要那样做。首先,这不符合他的要求,其次,it's just a bad idea in general
    • 我不认为这是一个坏主意,如果他想删除那么这就是解决方案,否则他将被卡在访问父节点和子节点。
    • 这完全是个坏主意。正则表达式不应用于解析 (X)HTML,因为它不是正则语言。更不用说这不符合他的要求。他只需要删除具有remove 类的元素。
    猜你喜欢
    • 2011-10-26
    • 2016-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-03
    • 1970-01-01
    • 2015-11-10
    • 2011-08-05
    相关资源
    最近更新 更多