使用php自动为html页面上的每个页面添加宽度和高度

使用php自动为html页面上的每个页面添加宽度和高度,php,Php,我试图自动添加宽度和高度的所有图像从页面,但由于某种原因,它增加了约3倍的宽度和高度的图像,它的工作非常努力。从我的测试来看,getimagesize函数是一个很难加载的问题,但是对于在每个img标签上重复3次宽度和高度,我不明白 正则表达式版本 $html = file_get_contents('http://www.inspiredhealing.org'); $html = preg_replace( '/(width|height)="\d*"\s/', "", $html ); $h

我试图自动添加宽度和高度的所有图像从页面,但由于某种原因,它增加了约3倍的宽度和高度的图像,它的工作非常努力。从我的测试来看,
getimagesize
函数是一个很难加载的问题,但是对于在每个img标签上重复3次宽度和高度,我不明白

正则表达式版本

$html = file_get_contents('http://www.inspiredhealing.org');
$html = preg_replace( '/(width|height)="\d*"\s/', "", $html );
$html = preg_replace( '/(width)="\d*"\s/', "", $html );
$html = str_replace('width="60"', '', $html);
$img_sources = preg_match_all('/< *img[^>]*src *= *["\']?([^"\']*)/i', $html, $images);
foreach($images[1] as $src) {
    $image_size = getimagesize($src);
    $html = str_replace($src.'"', $src.'" '.$image_size[3], $html);
}
var_dump($html);
我添加了带有dom文档的版本,但脚本运行速度仍然很慢,它将宽度和高度属性添加到图像中5次,确实在数组中我获得了5次相同的链接,但如何正确添加。数组
$img\u源
将是这样的smth:

array(
     'fb.png', 
     'fb.png',
     'fb.png'
....
)

因此,它将广告投放到相同的标签上,但是在fb.png的所有实例上,广告的宽度和高度都是fb.png的5倍,而不是将广告投放到数组的每个元素上。因此,问题存在于
foreach($src作为img_源代码){
但是如何克服这个问题。

你为什么要使用正则表达式?你应该使用DOM解析器…@MarcB将
$html
变量保留为字符串?更确切地说,如何做到这一点?不。它不是字符串。它是一个DOM对象。但是从这个对象中,你可以轻松地检索完整的html。@MarcB更新了我的问题,它是regex不是问题所在,但foreach是,我对大约x个图像使用了相同的图像x次,出于某种原因,我对所有5个图像应用了图像的宽度和高度5次。我看到了与preg_replace回调相关的smth,但不清楚如何使用它。
array(
     'fb.png', 
     'fb.png',
     'fb.png'
....
)