如何在php中快速保存URL中的图像

如何在php中快速保存URL中的图像,php,Php,我想用php保存live url中的图像。事实上,这些图像是通过调用gmap streetview图像api收集的。在循环中,它正在被调用。大约有500次迭代。但问题是节省的时间太多了。根据要求,我必须改变这一点。我也使用了file\u get\u contents()和file\u put\u contents()和CURL,但没有任何效果 那么有什么解决办法吗?任何帮助都将不胜感激。尝试使用github上提供的Rolling curl类,这将帮助您节省最长的时间,因为这是处理curl请求的最

我想用php保存live url中的图像。事实上,这些图像是通过调用
gmap streetview图像api
收集的。在循环中,它正在被调用。大约有500次迭代。但问题是节省的时间太多了。根据要求,我必须改变这一点。我也使用了
file\u get\u contents()
file\u put\u contents()
和CURL,但没有任何效果


那么有什么解决办法吗?任何帮助都将不胜感激。

尝试使用github上提供的Rolling curl类,这将帮助您节省最长的时间,因为这是处理curl请求的最快方法。


嗨,Partha这是工作代码,请使用

<?php
require 'RollingCurl/RollingCurl.php';
require 'RollingCurl/Request.php';
$urls = array('https://maps.googleapis.com/maps/api/streetview?size=400x400&location=taj%20Mahal&key=AIzaSyDTn9FYuxm3h3jKbEjwViHb7TKaCsXhUxI');
$cnt = 1;
$rollingCurl = new \RollingCurl\RollingCurl();    
foreach ($urls as $key => $value) {
    # code...
     $rollingCurl->get($urls[$key]);
}
$rollingCurl
    ->setCallback(function(\RollingCurl\Request $request, \RollingCurl\RollingCurl $rollingCurl) {
        $saveto = __DIR__."/images/".$GLOBALS['cnt'].".jpeg";
        file_put_contents($saveto,$request->getResponseText(),FILE_APPEND|LOCK_EX);
        $GLOBALS['cnt']++;
    })->execute();
?>


显示您的代码。最受欢迎@parthachowdhury如果您发现比此更快的其他内容,请与他人分享。。thankshi ankur您能给我看一个使用rolling curl类保存图像的示例代码吗。实际上,我对保存文件的代码放在哪里感到有点困惑。这是新答案中为您提供的代码。addinghi ankur感谢您共享代码。我已经使用了该代码。但还有一个问题,那就是,您在数组中拍摄的图像具有像a.jpg或b.jpg这样的图像名称。但是我有那些图像链接就像“更多。因此没有图像文件名,我们无法检查文件是否存在。此外,从您的图像链接”$request->getResponseText()“提供一些二进制数据,但在我的情况下,它什么也不提供。或者给我一些指向图像的URL。请确保这里有链接-&&对于要保存的图像,是否有任何命名约定…”。。。例如,如果将图像保存为1.jpg、2.jpg等等,会怎么样?不,一点也不。我只需保存图像并获得相应的名称。Lyhi ankur,你测试过代码了吗?在我这方面,它将图像保存为“jpeg”扩展名。但根本不查看图像。可能它已损坏。是的,它将保存为jpeg扩展名。。。。您可以在
$saveto=\uuuuu DIR\uuuu./images/“$GLOBALS['cnt']..jpeg”中更改扩展名此行,但它将以相同的扩展名保存所有图像…实际上是保存的图像。但是windows无法将图像视为空的。它包含0个字节。您必须在本地主机上运行它。。。你需要把它放在一个实时服务器上,然后它就可以工作了。。。我已经测试过了…但是我已经解决了这个问题。再次感谢你的帮助。
<?php
require 'RollingCurl/RollingCurl.php';
require 'RollingCurl/Request.php';
$urls = array('https://maps.googleapis.com/maps/api/streetview?size=400x400&location=taj%20Mahal&key=AIzaSyDTn9FYuxm3h3jKbEjwViHb7TKaCsXhUxI');
$cnt = 1;
$rollingCurl = new \RollingCurl\RollingCurl();    
foreach ($urls as $key => $value) {
    # code...
     $rollingCurl->get($urls[$key]);
}
$rollingCurl
    ->setCallback(function(\RollingCurl\Request $request, \RollingCurl\RollingCurl $rollingCurl) {
        $saveto = __DIR__."/images/".$GLOBALS['cnt'].".jpeg";
        file_put_contents($saveto,$request->getResponseText(),FILE_APPEND|LOCK_EX);
        $GLOBALS['cnt']++;
    })->execute();
?>