如何通过类名删除字符串中的'a'标记

时间:2013-12-05 10:40:44

标签: php preg-match

我想尝试按类名删除标签class =“btn” 从$ str变量下面使用php代码

$str = '<div class="btn-holder">
<a class="btn" href="=#">
<span>Log In</span>
</a>
<p><strong>
<em>
<a id="reset" href="#">Reset My Password</a>
</em>
</strong>
</p>
</div>';

5 个答案:

答案 0 :(得分:0)

试试这个:

$str = '<div class="btn-holder">
<a class="btn" href="=#">
<span>Log In</span>
</a>
<p><strong>
<em>
<a id="reset" href="#">Reset My Password</a>
</em>
</strong>
</p>
</div>';
$result = preg_replace('/<a href=\"(.*?)\">(.*?)<\/a>/', "\\2", $str);
echo $result;

答案 1 :(得分:0)

preg_replace('#<a.*?class="btn".*?>.*?</a>#', '', $str);

答案 2 :(得分:0)

$str = '...';

echo preg_replace('/<(\w)+.*?class=["\']btn["\'].*?>(.*?)</\1>/s', '', $str);

此RegEx从$ str。

中删除所有带有“btn”类的元素

如果您想保留代码内容,请在\\2上使用preg_replace

echo preg_replace('/<(\w)+.*?class=["\']btn["\'].*?>(.*?)</\1>/s', '\\2', $str);

答案 3 :(得分:0)

不要'使用正则表达式来解析XML文档。还有其他方法可以做到这一点。例如:

$doc = new DOMDOcument;
$doc->loadxml('your XML');

$xpath = new DOMXpath($doc);
foreach($xpath->query('//s[contains(@class,"btn")]') as $node) {
   $node->parentNode->removeChild($node);
}
echo $doc->savexml();

答案 4 :(得分:0)

我认为,更好的方法是使用jquery库。

$('a.btn').remove();
相关问题