php通过 curl方法请求下载 http链接文件

php通过 curl方法请求下载 http链接文件

<?php
$url = 'https://example.com/1.webp?test=1';

//去除?后面的参数
$url=strtok($url,'?'); 
// 初始化文件存放的路径 
$dir = dirname(__FILE__).DIRECTORY_SEPARATOR;
if(!is_dir($dir)){
	mkdir($dir);
}
  
// 初始化 cURL 会话
$ch = curl_init($url); 
  


// 使用 basename() 方法返回值来获取文件的文件名称
$file_name = basename($url); 
  
// 存放文件到本地的完整路径
$save_file_loc = $dir . $file_name; 
echo $save_file_loc;
// 打开文件  
$fp = fopen($save_file_loc, 'wb'); 
curl_setopt($ch, CURLOPT_HEADER, 0);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
  
// 处理一个 cURL 会话
$result = curl_exec($ch); 

// 关闭一个 cURL会话并释放所有资源
curl_close($ch); 

//将curl请求返回结果写入到 fp 打开的文件句柄中
fwrite($fp, $result);

// 关闭 fp 句柄并释放所有资源
fclose($fp);

References

  1. How to remove the querystring and get only the url?
  2. Download file from URL using PHP
posted @ 2020-02-11 22:05  五毛钱的饼  阅读(1150)  评论(0编辑  收藏  举报