通过CURL 通常我们经常使用来获取远程API数据,那么来试试curl保存远程文件吧,例如有时候我们希望将微信登录的用户头像保存下来,看代码吧。


/**
 * 使用CURL获取远程文件保存到服务器
 *@param $image=$oJSON->headimgurl;  获取到的微信返回的头像URL
 *@param $saveName=$openid.'.jpg';  保存的文件名
 *@param $path=__ROOT__.'Upload/wechat/head_img/';  保存的路径
 */
put_file_from_url_content($image,$saveName,$path);
function put_file_from_url_content($url, $saveName, $path) {
    // 设置运行时间为无限制
    set_time_limit ( 0 );
    $url = trim ( $url );
    $curl = curl_init ();
    // 设置你需要抓取的URL
    curl_setopt ( $curl, CURLOPT_URL, $url );
    // 设置header
    curl_setopt ( $curl, CURLOPT_HEADER, 0 );
    // 设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上。
    curl_setopt ( $curl, CURLOPT_RETURNTRANSFER, 1 );
    // 运行cURL,请求网页
    $file = curl_exec ( $curl );
    // 关闭URL请求
    curl_close ( $curl );
    // 将文件写入获得的数据
    $filename = $path . $saveName;
    // 打开用来保存数据的文件,如果没有则会创建
    $write = @fopen ( $filename, "w" );
    if ($write == false) {
        return false;
    }
    // 将CURL请求返回的数据写入文件
    if (fwrite ( $write, $file ) == false) {
        return false;
    }
    // 关闭文档流
    if (fclose ( $write ) == false) {
        return false;
    }
 }