我需要从外部服务器下载图像,从表中为每个数据集下载一个图像。 我已经编写了一个代码 - 基于我已经找到的想法。
当我使用少量数据集测试它时,此代码正常工作。但是我想一次运行一次这个脚本,表格最多有10.000个数据集。
我需要一个解决方案,脚本将仅按步骤下载图像(每个最多5MB) - 可能是100,然后是100,...
或者jQuery / Ajax可能有更好的解决方案?我对jQuery没有太多经验,只有PHP的基础知识。
这是我的代码:
foreach ($rs_post as $row) {
$org_file = 'http://domain.tld/' . $sub_dir . '/' . substr($row['sender_id'], 4) . '/' . $row['sender_id'] . '/pic_' . $row[$file_id] . $prefix . '.jpg';
$target_file = '/path/' . $dir . '/pic_' . $row[$file_id] . $prefix . '.jpg';
if (file_exists($target_file)) {
$ifmodhdr = 'If-Modified-Since: '.date( "r", filemtime($target_file))."\r\n";
} else {
$ifmodhdr = '';
}
$arrRequestHeaders = array( 'http'=>array( 'method' => 'GET', 'protocol_version' => 1.1, 'follow_location' => 1, 'header' => "User-Agent: Feed/1.0\r\n" . "Referer: $source\r\n" . $ifmodhdr ) );
if (!file_exists($target_file)) {
$success = copy( $org_file, $target_file, stream_context_create($arrRequestHeaders) );
if($success) {
echo '<li>'.$org_file.' : OK</li>';
} else {
echo '<li>'.$org_file.' : KO</li>';
}
ob_flush(); flush();
}
}
当我使用所有数据集运行此脚本时,我遇到了超时或内存问题。当我使用一些数据集运行此脚本时,它可以正常工作。
对我来说有什么tipps或教程吗?
此致 托