我需要一个.php脚本,将从另一个网站下载大量图像。这些图像都是大拇指--每个图像大约有20KB大小。我已经编写了我自己的脚本,但不幸的是,它只是落后于我的服务器,几乎杀死了它,迫使我重新启动它。
每次执行大约有100张或更多的图片,.jpg文件,大约20KB/文件。
我的脚本:
$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,但我愿意使用任何东西,只要它比现在工作得更好。
发布于 2011-04-07 04:18:46
很有可能,慢下来的是设置所有这些请求所需的时间。您应该考虑使用Parallel cURL一次下载多个。源代码:https://github.com/petewarden/ParallelCurl/blob/master/parallelcurl.php
$pc->startRequest('http://www.whatever.com/someimage.jpg', 'your_callback_function');我还发现,对于库,您可以在回调中使用匿名函数而不是函数名。例如,我使用它来调用另一个带有ID号的函数。
$requestid=37;
$pc->startRequest(
$url,
function($content, $url, $ch, $search) use $requestid {
yourRealCallback($content, $url, $ch, $search, $requestid);
}
);这利用了一个带有闭包的匿名函数,因此如果您正在搜索URL数据库,您可以获得结果ID (您在for循环或其他什么地方指定的ID)。在这里硬编码到'37‘用于演示)。
https://stackoverflow.com/questions/5572386
复制相似问题