首页 > 编程语言 >php curl 请求302跳转页面

php curl 请求302跳转页面

时间:2023-03-05 11:33:25浏览次数:38  
标签:ch setopt url 302 跳转 curl CURLOPT


若请求url已改变且设置了自动跳转,可通过设置 CURLOPT_FOLLOWLOCATION 参数实现自动请求跳转链接。若要手动判断是否跳转,可通过 curl_getinfo($ch) 方法获取具体请求信息,其中包括要跳转路径。
实例:

<?php
$url = 'http://auto.jrj.com.cn/';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//若给定url自动跳转到新的url,有了下面参数可自动获取新url内容:302跳转
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
//设置cURL允许执行的最长秒数。
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0');
curl_setopt($ch, CURLOPT_REFERER, $url);
curl_setopt($ch, CURLOPT_ENCODING, 'gzip, deflate');
$content = curl_exec($ch);
//获取请求返回码,请求成功返回200
$code = curl_getinfo($ch,CURLINFO_HTTP_CODE);
echo $code . "\n\n";

//获取一个cURL连接资源句柄的信息。
//$headers 中包含跳转的url路径
$headers = curl_getinfo($ch);
var_dump($headers);

// $content 为url请求内容
//echo "\n\n" . $content . "\n";

curl_getinfo($ch) 返回信息如下:

array (
'url' => 'http://auto.jrj.com.cn/',
'content_type' => 'text/html',
'http_code' => 301,
'header_size' => 352,
'request_size' => 206,
'filetime' => -1,
'ssl_verify_result' => 0,
'redirect_count' => 0,
'total_time' => 0.13020600000000004,
'namelookup_time' => 0.021582,
'connect_time' => 0.053791999999999951,
'pretransfer_time' => 0.053817000000000004,
'size_upload' => 0.0,
'size_download' => 182.0,
'speed_download' => 1397.0,
'speed_upload' => 0.0,
'download_content_length' => 182.0,
'upload_content_length' => 0.0,
'starttransfer_time' => 0.13016799999999995,
'redirect_time' => 0.0,
'redirect_url' => 'http://ucheke.jrj.com.cn/',
'primary_ip' => '211.135.187.48',
'certinfo' => array ( ),
)


标签:ch,setopt,url,302,跳转,curl,CURLOPT
From: https://blog.51cto.com/sdwml/6101315

相关文章