0

我必须更改每个 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

我希望有一个人可以帮助我

4

2 回答 2

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 中正则表达式修饰符的更多信息,请参阅文档。

于 2013-07-01T11:25:50.880 回答
1

不要使用e标志,正则表达式占位符不需要它,试试这个:

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

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

preg_replace('/\<.*[?&]id\=([0-9]+)[^>]*>/', '#$1#', $string);
于 2013-07-01T11:26:58.790 回答