用div str_replace替换img

时间:2016-03-18 17:25:32

标签: php string replace forum vbulletin

所以我已经尝试了几天来替换这个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]\".*/>', .......

但是当我添加最后一部分时。* /&gt;它停止工作=( 我做错了什么,怎么能让它抓住img tag = /

中的所有内容

1 个答案:

答案 0 :(得分:1)

如果你打算使用正则表达式。*,那么你必须调用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 $ [],因为它们在正则表达式中有特殊的意义。 还要注意? 。*。之后的标志。永远记住正则表达式是贪婪的,它们会继续吞噬你的所有文件。