使用 strip_tags() 后如何从字符串中删除纯文本

How to remove plain text from a string after using strip_tags()

所以我有一个字符串,我使用 strip_tags() 函数删除了除 IMG 之外的所有标签,但我的 IMG 元素旁边仍然有纯文本。这是一个视觉示例

$myvariable = "This text needs to be removed<a href='blah_blah_blah'>Blah</a><img src='blah.jpg'>"

所以使用 PHP strip_tags() 我能够删除除 <img> 标签(这是我想要的)之外的所有标签。但现在的问题是它没有删除文本。

如何删除剩余的文字?文本也将始终在标记之前或之后

[添加了更多详细信息]

$description = 'crazy stuff<a href="https://websta.me/p/1337373806024694030_327078936"><img src="https://scontent.cdninstagram.com/t51.2885-15/e15/14287934_1389514537744146_673363238_n.jpg?ig_cache_key=MTMzNzM3MzgwNjAyNDY5NDAzMA%3D%3D.2"></a>';

这就是变量实际持有的内容。

提前致谢

请用strip_tags.

展示你的整段代码

你可以试试:preg_replace('~.*(<img[^>]+>)~', '', $myvariable);

您可以很好地提取所需的值,而不是替换某些内容:

(<(\w+).+</>)

要与 preg_match() 一起使用,请参阅 a demo on regex101.com
PHP:

<?php
$regex = '~(<(\w+).+</>)~';
$string = 'crazy stuff<a href="https://websta.me/p/1337373806024694030_327078936"><img src="https://scontent.cdninstagram.com/t51.2885-15/e15/14287934_1389514537744146_673363238_n.jpg?ig_cache_key=MTMzNzM3MzgwNjAyNDY5NDAzMA%3D%3D.2"></a>here as well';

if (preg_match($regex, $string, $match)) {
    echo $match[1];
}
?>