PHP - 删除标签的内容,如果它的内容以特定文本开头


PHP - Remove content of a tag if it's content starts with certain text

我这里有一个情况,你能帮我这样做吗?我有像这样的字符串 -

Someother string 'n'n or anything[img]data:image/png;base64,iVBORw0KGgoAAAAN........[/img]aaa

也有这样的——

anything[img]http://imagepath.com/image.png[/img]aaa

我想删除[img]标签,如果它以/包含data:image开头[img]标签。

正则表达式会很棒。

我试过这个——

preg_replace('#data:image/[^;]+;base64,#', '', $string);

但没有提供预期的结果。

$string = preg_replace('/'[img']data:image.*?'['/img']/', '', $string);

简单的测试脚本:

<?php
$string = 'Stack [img]data:image/png;base64,iVBORw0KGgoAAAAN...[/img] Overflow';
$string = preg_replace('/'[img']data:image.*?'['/img']/s', '', $string);
echo "$string'n";
?>

输出为:

堆栈溢出