PHP CURL异步将远程链接上的内容(图片或内容)写到本地
2022-05-31PHP
通常来说,php的curl函数组可以帮助抓取网站内容数据,比如抓取网页等。每次要使用curl的时候,总要查一堆资料。 现在将它封装成一个方法保存下来,方便直接使用,同时支持http和https。
通常来说,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时,代表成功,反之,为失败
很赞哦! ()