我想获得网页中所有图片的图片大小(因此所有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获取网页中图片的大小。
答案 0 :(得分:6)
使用curl
保存图片,但在 parallel 中运行curl
个请求 - 这样它的加载速度会更快(瓶颈不是带宽,而是建立请求时间,这将有助于)。将图像保存到本地目录后,然后在所有图像上运行getimagesize()
。
答案 1 :(得分:0)
对于初学者,请在本地缓存图像。你在网络上拖了55次。下载图像的开销大大超过了查找其宽度和高度所花费的实际时间。
如果您正在讨论查找55 不同图像的大小,您可能会考虑在某种程度上并行化代码。您可能花费尽可能多的时间设置连接是您正在传输实际数据,并且由于一次下载一个图像可能远远不能使您的Internet连接饱和,因此您可以通过运行两个并发进程来实现性能翻倍。继续增加并发性,直到您不再看到性能提升。