PHP 获取 URL 302 重定向地址
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);
}
代码解释:
- 设置
CURLOPT_FOLLOWLOCATION选项为true,开启自动跳转功能。 - 设置
CURLOPT_MAXREDIRS选项为10,限制最大跳转次数,防止无限循环跳转。 - 使用
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 重定向地址。如果您有任何问题,请随时在评论区留言。
原文地址: https://www.cveoy.top/t/topic/oeXO 著作权归作者所有。请勿转载和采集!