首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP中的海量图片下载脚本

PHP中的海量图片下载脚本
EN

Stack Overflow用户
提问于 2011-04-07 04:13:26
回答 1查看 5.2K关注 0票数 5

我需要一个.php脚本,将从另一个网站下载大量图像。这些图像都是大拇指--每个图像大约有20KB大小。我已经编写了我自己的脚本,但不幸的是,它只是落后于我的服务器,几乎杀死了它,迫使我重新启动它。

每次执行大约有100张或更多的图片,.jpg文件,大约20KB/文件。

我的脚本:

代码语言:javascript
复制
$count = 0;
foreach ($files as $file) {
$count++;
$url = $file;
$dl_place = '/home/lulz/'.$count.'.jpg';

$ch = curl_init($dl);
$fp = fopen($path, 'wb');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);
}

正如你所看到的,我正在使用curl,但我愿意使用任何东西,只要它比现在工作得更好。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-04-07 04:18:46

很有可能,慢下来的是设置所有这些请求所需的时间。您应该考虑使用Parallel cURL一次下载多个。源代码:https://github.com/petewarden/ParallelCurl/blob/master/parallelcurl.php

代码语言:javascript
复制
$pc->startRequest('http://www.whatever.com/someimage.jpg', 'your_callback_function');

我还发现,对于库,您可以在回调中使用匿名函数而不是函数名。例如,我使用它来调用另一个带有ID号的函数。

代码语言:javascript
复制
$requestid=37;
$pc->startRequest(
    $url, 
    function($content, $url, $ch, $search) use $requestid {
        yourRealCallback($content, $url, $ch, $search, $requestid);
    }
);

这利用了一个带有闭包的匿名函数,因此如果您正在搜索URL数据库,您可以获得结果ID (您在for循环或其他什么地方指定的ID)。在这里硬编码到'37‘用于演示)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5572386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档