将 IMG 替换为 div str_replace



所以我几天来一直在尝试替换这个img

<img src="$post[avatarurl]" $post[avwidth] $post[avheight] alt="<phrase 1="$post[username]">$vbphrase[xs_avatar]</phrase>" border="0" />

与一个div。

我终于得到了一个结果

$vbulletin->templatecache['postbit'] = str_replace('<img src="$post[avatarurl]"', 'CRAP', $vbulletin->templatecache['postbit']);

它像它应该的那样替换了 IMG 的开头和 SRC 标签。

但我似乎无法让它抓取 img 标签中的所有内容,我试图做类似的事情

str_replace('<img src="$post[avatarurl]".*/>', .......

但是当我添加最后一部分 .*/> 时它停止工作 =(我做错了什么,我怎样才能让它抓住 img 标签中的所有内容 =/

如果要使用正则表达式 .*,则必须调用 preg_repalce 而不是 str_replace。

如果你的字符串是这样的

$string = '<img some stuff /><img src="$post[avatarurl]" $post[avwidth] $post[avheight] alt="<phrase 1="$post[username]">$vbphrase[xs_avatar]</phrase>" border="0" /><img some other stuff />';

那么一个合适的正则表达式可以是这样的:

$result = preg_replace('/<img src="$post[avatarurl].*? />/', 'CRAP', $string);

在这里,我保护了 caracters $ [],因为它们在正则表达式中具有特殊的度量。另请注意 ?在 .* 后签名。永远记住,正则表达式是贪婪的,它们会继续吞噬你的所有文件。

最新更新