这是一个 PHP 函数,可用于将文件从 Internet($url 参数)下载到服务器上的本地文件($file_path 参数):
function download_file($url, $file_path) {
$out = fopen($file_path, 'wb');
if ($out == FALSE){
print "File not opened<br>";
exit;
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_FILE, $out);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_URL, $url);
curl_exec($ch);
//echo "<br>Error is : ".curl_error ( $ch);
curl_close($ch);
fclose($out);
}
你可以这样称呼它:
$url = 'http://upload.wikimedia.org/wikipedia/commons/thumb/1/1f/Iss030e015472_Edit.jpg/352px-Iss030e015472_Edit.jpg';
download_file($url,'/var/www/www.mysite.com/public_html/images/image_user1.jpg');
确保您将文件保存到的文件夹对您的 apache 用户具有写入权限。还要确保您已加载 cURL php 扩展以使其正常工作。
此功能应该比您的imagecreatefromjpeg
方法快得多。尝试一下,如果您仍然觉得它对您来说很慢,您可以按照 Gabriel 的建议,通过实现一个队列以与curl_multi_init并行运行多个请求来改进它。