PHP 获取 URL 302 重定向地址

以下代码演示了如何使用 PHP 的 curl 函数获取 URL 302 重定向地址:

for($i=8888; $i<8900; $i++) {
    $id = str_pad($i, 4, '0', STR_PAD_LEFT); // 将数字转化为4位字符串,前面补0
    $url = 'http://39.134.24.161/dbiptv.sn.chinamobile.com/PLTV/88888890/224/322122'.$id.'/index.m3u8';
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
    curl_setopt($ch, CURLOPT_TIMEOUT, 5);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // 开启自动跳转
    curl_setopt($ch, CURLOPT_MAXREDIRS, 10); // 最大跳转次数
    $response = curl_exec($ch);
    $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    if($response === false || $http_code >= 400) {
        echo "访问失败:".$url."\n";
    } else {
        $redirect_url = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL); // 获取最终跳转后的地址
        echo "访问成功:".$redirect_url."\n";
    }
    curl_close($ch);
}

代码解释:

  1. 设置 CURLOPT_FOLLOWLOCATION 选项为 true,开启自动跳转功能。
  2. 设置 CURLOPT_MAXREDIRS 选项为 10,限制最大跳转次数,防止无限循环跳转。
  3. 使用 curl_getinfo($ch, CURLINFO_EFFECTIVE_URL) 获取最终跳转后的地址,并输出。

其他注意事项:

  • 代码示例中,$url 变量是示例地址,请根据实际情况进行修改。
  • curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5)curl_setopt($ch, CURLOPT_TIMEOUT, 5) 设置连接超时和请求超时时间,可以根据实际情况进行调整。
  • 如果需要获取重定向过程中所有跳转的地址,可以使用 curl_getinfo($ch, CURLINFO_REDIRECT_URL) 函数获取。

希望这篇文章能帮助您了解如何使用 PHP 获取 URL 302 重定向地址。如果您有任何问题,请随时在评论区留言。

PHP 获取 URL 302 重定向地址

原文地址: https://www.cveoy.top/t/topic/oeXO 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录