2017-11-05PHP CURL异步将远程链接上的内容(图片或内容)写到本地

您现在的位置是: 首页 > PHP技术 > PHP CURL异步将远程链接上的内容(图片或内容)写到本地

385次阅读

通常来说,php的curl函数组可以帮助抓取网站内容数据,比如抓取网页等。每次要使用curl的时候,总要查一堆资料。 现在将它封装成一个方法保存下来,方便直接使用,同时支持http和https。

/**\r * 异步将远程链接上的内容(图片或内容)写到本地\r * @param $url    远程地址\r * @param $saveName    保存在服务器上的文件名\r * @param $path    保存路径\r * @return boolean\r */\rfunction putFileFromUrlContent($url, $saveName, $path) {\r\r    // 设置运行时间为无限制\r    set_time_limit ( 0 );\r    $url = trim ( $url );\r    $curl = curl_init ();\r    // 设置你需要抓取的URL\r    curl_setopt ( $curl, CURLOPT_URL, $url );\r    // 设置header\r    curl_setopt ( $curl, CURLOPT_HEADER, 0 );\r\r    // 设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上。\r    curl_setopt ( $curl, CURLOPT_RETURNTRANSFER, 1 );\r\r    //这个是重点,加上这个便可以支持http和https下载\r    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);\r\r    // 运行cURL,请求网页\r    $file = curl_exec ( $curl );\r\r    // 关闭URL请求\r    curl_close ( $curl );\r\r    // 将文件写入获得的数据\r    $filename = $path . $saveName;\r    $write = @fopen ( $filename, "w" );\r    if ($write == false) {\r        return false;\r    }\r    if (fwrite ( $write, $file ) == false) {\r        return false;\r    }\r    if (fclose ( $write ) == false) {\r        return false;\r    }\r    return true;\r\r\r}


使用示例:

$url = "https://www.52linmin.wang/upload/portal/20171104/cb1511a3b30ef088c358286110823309.jpg";\r$saveName = \'whm.jpg\';\r$path = "./"; //保存在当前目录下\r$res = putFileFromUrlContent($url,$saveName,$path);\r\rvar_dump($res);// 当返回为true时,代表成功,反之,为失败