替换图像src标记内的图像

时间:2010-11-25 15:49:37

标签: php

我有以下情况,我有一个html文件,图片标签大约10或更多,但它有所不同。现在我想要实现的是用PHP函数替换图像src,如下面的例子

我想替换像这样的东西

<img src="image1.png" .... 
<img src="image2.png" .... 

用这个

<img src="<?=imageResize('image1.png',20,15)?>" ...
<img src="<?=imageResize('image2.png',20,15)?>" ..`.

这可能吗?

3 个答案:

答案 0 :(得分:3)

我们假设当前页面源包含在$source中。尝试一些正则表达式:

<?php
preg_replace ('/<img src="(.+)"/Ui', '<img src="<?=imageResize(\'\\1\',20,15)?>"', $source);
?>

答案 1 :(得分:0)

我看到2个案例:

  • 您的imageResize函数调整图像大小,创建一个具有不同名称的新图像(类似于image120x15.png)并返回带有图像名称的字符串。在这种情况下,您应该执行以下操作:
<img src="<?php echo imageResize('image1.png',20,15);?>" ...
  • 您的imageResize实际调整了初始图像的大小并覆盖了它。在这种情况下,请执行以下操作:
<?php imageResize('image1.png',20,15);?>
<img src="image1.png" ...

答案 2 :(得分:0)

使用输出缓冲区捕获输出,然后应用regex进行替换。

<?ob_strart();?>
<img src="image1.png" /> 
<img src="image2.png" />

<?php
$cnt = ob_get_clean();
$cnt = preg_replace ('/<img src="([^"]+)"/', '<img src="<?=imageResize(\'\\1\',20,15)?>"', $cnt);?>

对于执行函数imageresize,您必须在eval()中运行输出。