在php中有效替代getimagesize()

时间:2011-11-10 03:47:47

标签: php performance image http

  

可能重复:
  Super fast getimagesize in php

我想获得网页中所有图片的图片大小(因此所有img标签)

问题是PHP的getimagesize()函数效率很低。

我试过这个......

for($i=0;$i<55;$i++){
  getimagesize('http://www.blackcommentator.com/265/265_images/265_cartoon_do_something_now_bill_large.jpg');
}

..并且花了很长时间才完成。

我想知道是否有人知道getimagesize()更有效的替代方法,以便在获得20-30张图片大小的典型情况下使用PHP获取网页中图片的大小。

2 个答案:

答案 0 :(得分:6)

使用curl保存图片,但在 parallel 中运行curl个请求 - 这样它的加载速度会更快(瓶颈不是带宽,而是建立请求时间,这将有助于)。将图像保存到本地目录后,然后在所有图像上运行getimagesize()

答案 1 :(得分:0)

对于初学者,请在本地缓存图像。你在网络上拖了55次。下载图像的开销大大超过了查找其宽度和高度所花费的实际时间。

如果您正在讨论查找55 不同图像的大小,您可能会考虑在某种程度上并行化代码。您可能花费尽可能多的时间设置连接是您正在传输实际数据,并且由于一次下载一个图像可能远远不能使您的Internet连接饱和,因此您可以通过运行两个并发进程来实现性能翻倍。继续增加并发性,直到您不再看到性能提升。