preg_replace图像标记到其他格式字符串

时间:2013-07-01 11:18:07

标签: php preg-replace

我必须改变每个php的图像标签...

这是源字符串......

'picture number is <img src=get_blob.php?id=77 border=0> howto use'

结果应该是这样的

'picture number is #77# howto use' 

我已经测试了很多,但我只得到图像的数量... 这是我的最后一次测试...

$content = 'picture number is <img src=get_blob.php?id=77 border=0> howto use';
$content = preg_replace('|\<img src=get_blob.php\?id=(\d+)+( border\=0\>)|e', '$1', $content);

现在$content是77

我希望有人可以帮助我

2 个答案:

答案 0 :(得分:1)

几乎正确。只需删除e标志:

$content = 'picture number is <img src=get_blob.php?id=77 border=0> howto use';
$content = preg_replace('/\<img src=get_blob.php\?id=(\d+)+( border\=0\>)/', '#$1#', $content);
echo $content;

输出:

picture number is #77# howto use

有关PHP中正则表达式修饰符的更多信息,请参阅documentation

答案 1 :(得分:1)

不要使用e标志,这对于正则表达式占位符来说不是必需的,只需尝试一下:

preg_replace('/\<.*\?id\=([0-9]+)[^>]*>/', '#$1#', $string);

这个正则表达式确实假设id将是src url的第一个参数,如果情况并非总是如此,请使用:

preg_replace('/\<.*[?&]id\=([0-9]+)[^>]*>/', '#$1#', $string);