所以我已经尝试了几天来替换这个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 = /
中的所有内容答案 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 $ [],因为它们在正则表达式中有特殊的意义。 还要注意? 。*。之后的标志。永远记住正则表达式是贪婪的,它们会继续吞噬你的所有文件。