【问题标题】:How to remove "<a id="12" />" from string如何从字符串中删除“<a id="12" />”
【发布时间】:2015-06-15 21:07:31
【问题描述】:

我有一个 xhtml 字符串,它包含:

<a id="8" />

数字每次都是随机的。它没有 href 属性,所以也许删除所有 &lt;a&gt; 不带 href 是一种选择?我想用 PHP 删除这些部分,我最好的方法是什么?

我想使用 tidy,但我认为它没有删除这些标签的选项。

如果这是不可能的,我相信preg_replace() 与正则表达式是我的第二个最佳方法。但是,我不知道删除这些部分的正则表达式字符串。

【问题讨论】:

  • 如果 id 设置了一个只输出随机数的函数,您可以在变量中获取该随机数,然后在链接中使用它但保留变量并使用它来识别哪个 标签删除。
  • 您是否在使用任何 XML 解析库/函数?

标签: php regex xhtml


【解决方案1】:

试试这个: &lt;a\s+id="[^"]*"[^\/]\/&gt;

$re = "/<a\\s+id=\"[^\"]*\"[^\\/]\\/>/mi"; 
$str = "<a id=\"8\" />\njdf\nsadfa\n<a id=\"df\" />\n<a name=\"df\" />"; 
$subst = ""; 

$result = preg_replace($re, $subst, $str);

并且只删除&lt;a id="8" /&gt; 然后使用&lt;a\s+id="8"[^\/]\/&gt;

Demo

【讨论】:

  • 这也会从 cmets 和 CDATA 块中删除所述字符串,不是吗?
【解决方案2】:

我能够解决它,首先找出为什么这段代码会被添加到 XHTML 字符串中。我删除了它,从而解决了问题。

【讨论】:

    猜你喜欢
    • 2011-09-19
    • 2019-12-19
    • 1970-01-01
    • 2021-09-12
    • 2019-12-04
    • 1970-01-01
    相关资源
    最近更新 更多