PHP 利用curl下载文件,成功则返回文件地址,失败则返回下载链接
时间:2023年10月07日
/来源:网络
/编辑:佚名
之前也写过类似的功能,但是没有记笔记,最后就搞忘了,最近又开始写,所以这里记录一下!
PHP代码:
public function downloadFile($url, $path) {
// 判断文件是否存在
if (file_exists($path)) {
// 判断文件大小是否大于10KB
if (filesize($path) > 10240) {
// 文件已经成功下载过
return str_replace(dirname(dirname(__DIR__)), '', $path);
}
}
// echo 123;
// 初始化 cURL
$ch = curl_init($url);
// 设置保存文件路径及文件句柄
$fp = fopen($path, 'w');
curl_setopt($ch, CURLOPT_FILE, $fp);
// 设置 cURL 选项
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3');
// 执行下载
$result = curl_exec($ch);
// 关闭文件句柄和 cURL 资源
fclose($fp);
curl_close($ch);
// 根据下载结果返回对应的值
if ($result !== false) {
return str_replace(dirname(dirname(__DIR__)), '', $path);
} else {
// 处理错误
return $url;
}
}
代码使用:
放进你的类库里,然后使用传入下载链接和需要存放的绝对地址即可,代码需要进行相关的修改,请自理更新,代码经供参考。
PHP代码:
public function downloadFile($url, $path) {
// 判断文件是否存在
if (file_exists($path)) {
// 判断文件大小是否大于10KB
if (filesize($path) > 10240) {
// 文件已经成功下载过
return str_replace(dirname(dirname(__DIR__)), '', $path);
}
}
// echo 123;
// 初始化 cURL
$ch = curl_init($url);
// 设置保存文件路径及文件句柄
$fp = fopen($path, 'w');
curl_setopt($ch, CURLOPT_FILE, $fp);
// 设置 cURL 选项
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3');
// 执行下载
$result = curl_exec($ch);
// 关闭文件句柄和 cURL 资源
fclose($fp);
curl_close($ch);
// 根据下载结果返回对应的值
if ($result !== false) {
return str_replace(dirname(dirname(__DIR__)), '', $path);
} else {
// 处理错误
return $url;
}
}
代码使用:
放进你的类库里,然后使用传入下载链接和需要存放的绝对地址即可,代码需要进行相关的修改,请自理更新,代码经供参考。
新闻资讯 更多
- 【建站知识】查询nginx日志状态码大于400的请求并打印整行04-03
- 【建站知识】Python中的logger和handler到底是个什么?04-03
- 【建站知识】python3拉勾网爬虫之(您操作太频繁,请稍后访问)04-03
- 【建站知识】xpath 获取meta里的keywords及description的方法04-03
- 【建站知识】python向上取整以50为界04-03
- 【建站知识】scrapy xpath遇见乱码解决04-03
- 【建站知识】scrapy爬取后中文乱码,解决word转为html 时cp1252编码问题04-03
- 【建站知识】scrapy采集—爬取中文乱码,gb2312转为utf-804-03