我很有兴趣删除以下标签中的所有文字:
<p class="wp-caption-text">Remove this text</p>
有人能告诉我如何在php中完成这项工作吗?
非常感谢
答案 0 :(得分:3)
删除其中的标记和内容:
$content = preg_replace('/<p\sclass=\"wp\-caption\-text\">[^<]+<\/p>/i', '', $content);
或者如果你想保留标签:
$content = preg_replace('/(<p\sclass=\"wp\-caption\-text\">)[^<]+(<\/p>)/i', '$1$2', $content);
答案 1 :(得分:2)
作为正则表达式的高级替代。
您可以使用DOM进行处理。您可以使用XPath //p[@class="wp-caption-text"]
匹配您正在查找的所有节点。
例如:
$doc = new DOMDocument();
$doc->loadHTML($yourHTMLasString);
$xpath = new DOMXPath($doc);
$query = '//p[@class="wp-caption-text"]';
$entries = $xpath->query($query);
foreach ($entries as $entry) {
$entry->textContent = '';
}
echo $doc->saveHTML();
答案 2 :(得分:1)
试试这个:
$string = '<p class="wp-caption-text">Remove this text</p>';
$pattern = '/(.*<p .*>).*(<\/p>.*)/';
$replacement = '$1$2';
echo preg_replace($pattern, $replacement, $string);
答案 3 :(得分:0)
如果它总是相同的标签你可以简单地搜索字符串。使用从它生成子串的位置到结束标记。 或者你可以使用正则表达式,这里有很好的帖子可以帮助你。