删除特定标签内的所有文本

发布于 2024-10-12 11:22:29 字数 159 浏览 7 评论 0原文

我对删除以下标签中的所有文本很感兴趣:

<p class="wp-caption-text">Remove this text</p>

任何人都可以告诉我如何在 php 中完成此操作吗?

非常感谢

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

<p class="wp-caption-text">Remove this text</p>

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

Thank you very much

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

帅气称霸 2024-10-19 11:22:29

删除标签及其内部内容:

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

或者如果您想保留标签:

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

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);
哭了丶谁疼 2024-10-19 11:22:29

作为正则表达式的更高级别替代方案。

您可以使用 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();

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();
挽心 2024-10-19 11:22:29

试试这个:

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

Try this:

$string = '<p class="wp-caption-text">Remove this text</p>'; 
$pattern = '/(.*<p .*>).*(<\/p>.*)/'; 
$replacement = '$1$2'; 
echo preg_replace($pattern, $replacement, $string); 
羁拥 2024-10-19 11:22:29

如果它始终是相同的标签,您可以简单地搜索该字符串。使用结果的位置将其子串到结束标记。
或者您可以使用正则表达式,这里发布了一些可以帮助您的好表达式。

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文