PHP高效下载图片保存到本地

 PHP如何怎么样高效下载图片保存到本地? 直接上代码:

/**
 * 下载图片,保存到本地文件
 * 
 * @param string $url
 * @param string $saveFile
 * @return mixed
 */
function xiazai($url, $saveFile) {
    $parse = parse_url($url);
    if (!isset($parse['host'])) {
        return false;
    }

    $file = SAVE_PATH . $saveFile;
    echo 'Saving ', $file, PHP_EOL;

    mkdirs( dirname($file) );
    $ip = genRandIp();
    $fp = fopen($file, 'wb');

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_FILE, $fp);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
        'CLIENT-IP:' . $ip,
        'X-FORWARDED-FOR:' . $ip,
        'User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3100.0 Safari/537.36',
        'Host:' . $parse['host'],
    ));
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_TIMEOUT, 180);
    $res = curl_exec($ch);
    curl_close($ch);

    fclose($fp);

    // 下载失败,则删除空文件
    if (filesize($file) <= 10) {
        @unlink($file);
        return false;
    }

    return $res;
}
发布了33 篇原创文章 · 获赞 9 · 访问量 46万+

猜你喜欢

转载自blog.csdn.net/fkew2009/article/details/84109147
今日推荐