网络工具您现在的位置是:首页 > 工具箱 > 网络工具

PHP curl 301 Moved Permanently(301永久迁移)的问题解决方法

<a href='mailto:'>微wx笑</a>的头像微wx笑2019-09-04 13:33:31网络工具人已围观关键字:php,curl

简介PHP curl 301 Moved Permanently(301永久迁移)的问题解决方法在终端中使用 curl https://static.liaoxuefeng.com/files/attachments/1259577026801664/l可以得到图片数据,但

PHP curl 301 Moved Permanently(301永久迁移)的问题解决方法2hl编程技术_踩坑日志_进阶指南 - 无知人生

在终端中使用 2hl编程技术_踩坑日志_进阶指南 - 无知人生

curl https://static.liaoxuefeng.com/files/attachments/1259577026801664/l2hl编程技术_踩坑日志_进阶指南 - 无知人生

可以得到图片数据,但在php中使用 curl 返回的却是:2hl编程技术_踩坑日志_进阶指南 - 无知人生

<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx/1.14.0 (Ubuntu)</center>
</body>
</html>

解决方法

添加一行curl_setopt:2hl编程技术_踩坑日志_进阶指南 - 无知人生

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

意思是当遇到location跳转时,直接抓取跳转的页面。2hl编程技术_踩坑日志_进阶指南 - 无知人生

下载方法代码:

function mkdirs($dir, $mode = 0777)
{
    if (is_dir($dir) || @mkdir($dir, $mode)) return TRUE;
    if (!mkdirs(dirname($dir), $mode)) return FALSE;
 
    return @mkdir($dir, $mode);
}

function download123($url, $path = 'images/')
{

  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
 
  $file = curl_exec($ch);
  curl_close($ch);
 
  $filename = pathinfo($url, PATHINFO_BASENAME);
  if (stripos($filename, "?")){
	$filename = strstr($filename, "?", true);
  }
  if (!stripos($filename, ".")){
	$filename = $filename.".jpeg";
  }

  mkdirs($filename);

  $resource = fopen($path . $filename, 'a');
  fwrite($resource, $file);
  fclose($resource);
}


2hl编程技术_踩坑日志_进阶指南 - 无知人生

本文由 微wx笑 创作,采用 CC BY-NC 4.0 许可协议。 非商业性使用可自由转载、引用、甚至修改,但需署名作者且注明出处。

很赞哦! () 有话说 ()

点击排行

站点信息

  • 建站时间:2018-10-24
  • 服务期限阿里云ECS 2027年到期
  • 主题模板:基于《今夕何夕》修改
  • 文章统计:188篇
  • 文章评论:27条
  • 文章阅读:2117次
  • 文章点赞:874次
  • 微信公众号:扫描二维码,关注我们