开发者

Remove all text within specific tags

开发者 https://www.devze.com 2023-02-04 01:27 出处:网络
I am interesting in removing all the text within the following tags: <p class=\"wp-caption-text\">Remove this text</p>

I am interesting in removing all the text within the following tags:

<p class="wp-caption-text">Remove this text</p>
开发者_如何学Go

Can anybody give me an idea of how this can be done in php?

Thank you very much


Get rid of the tag and content inside of it:

 $content = preg_replace('/<p\sclass=\"wp\-caption\-text\">[^<]+<\/p>/i', '', $content);

or if you want to preserve the tags:

 $content = preg_replace('/(<p\sclass=\"wp\-caption\-text\">)[^<]+(<\/p>)/i', '$1$2', $content);


As bit higher-level alternative to regular expressions.

You can process with DOM. You can match all nodes you're looking for with XPath //p[@class="wp-caption-text"].

For example:

$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();


Try this:

$string = '<p class="wp-caption-text">Remove this text</p>'; 
$pattern = '/(.*<p .*>).*(<\/p>.*)/'; 
$replacement = '$1$2'; 
echo preg_replace($pattern, $replacement, $string); 


if its always the same tag you could simply do search for the string. use the position resulting to substring from it to the closing tag. Or you could use a regular expression, there are good ones posted here that can help you.

0

精彩评论

暂无评论...
验证码 换一张
取 消