php curl 302
时间: 2023-09-25 19:08:36 浏览: 43
当使用 PHP 的 curl 函数发送请求时,如果服务器返回了 HTTP 状态码 302(重定向),那么默认情况下 curl 函数会自动跟随重定向并返回重定向后的内容。但如果想要获取重定向前的响应信息,可以通过设置 CURLOPT_FOLLOWLOCATION 选项为 false,然后手动处理重定向。
示例代码:
```
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://example.com");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false); // 禁止自动跟随重定向
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 将响应保存到变量中
$result = curl_exec($ch);
$info = curl_getinfo($ch);
if ($info['http_code'] == 302) {
$redirect_url = $info['redirect_url']; // 获取重定向地址
// 处理重定向
}
curl_close($ch);
```
在上面的示例代码中,首先使用 curl_setopt 函数设置了 CURLOPT_FOLLOWLOCATION 选项为 false,禁止 curl 函数自动跟随重定向。然后使用 CURLOPT_RETURNTRANSFER 选项将响应保存到变量中。接着使用 curl_getinfo 函数获取响应的相关信息,包括 HTTP 状态码和重定向地址(如果有的话)。最后在判断 HTTP 状态码是否为 302 后,可以手动处理重定向。