PHP curl和file_get_contents获取重定向Location后的链接

Mr.Bai 1,756 浏览 1

随机图像

CURL

curl获取重定向 301 302 后的链接值,使用到curl中的curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);curl_getinfo($ch,CURLINFO_EFFECTIVE_URL);CURLOPT_FOLLOWLOCATION : TRUE 时将会根据服务器返回 HTTP 头中的 "Location: " 重定向。注意:这是递归的,"Location: " 发送几次就重定向几次,除非设置了 CURLOPT_MAXREDIRS,限制最大重定向次数

$url = '';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);  //返回重定向url
$return_url = curl_getinfo($ch,CURLINFO_EFFECTIVE_URL); //获取重定向url
$response = curl_exec($ch);
$error = curl_error($ch);
echo '重定向url:'.$return_url;

PHP手册:https://www.php.net/manual/zh/function.curl-setopt.php

file_get_contents

file_get_contents($url);
    preg_match('/(Location:|URI:)(.*?)\n/', implode("\n", $http_response_header), $matches);

    if (isset($matches[0]))
    {   
      echo $matches[0];
}else{
       echo $matches[0];
}

PHP手册:https://www.php.net/file_get_contents/

发表评论 取消回复
表情 图片 链接 代码

  1. 沙雕网友
    沙雕网友 Lv 1

    顶一下

分享
请选择语言