php – Curl提供与普通浏览器不同的响应

我正在尝试使用curl从网页获取响应.但是在使用curl和正常浏览时我会得到不同的响应.

PHP文件

$ch = curl_init();
echo "trying<br>";
//$url = "home.iitk.ac.in/~gopi/student_search/Feedback.PHP";
$roll_no = "11101";
$name="";
$program="all";
$department="all";
$email="";
$gender="both";
$city="";
$course="";
$order="id";
$hostel="";
$bg='';
$tile = '0';
$offset = 0;
$url = "http://search.junta.iitk.ac.in/get2.PHP?&tile=0&roll_no=".$roll_no."&name=".$name."
                        &program=".$program."&dept=".$department."&login=".$email."&gender=".$gender."
                        &city=".$city."&course=".$course."&hostel=".$hostel."&bg=".$bg."&offset=".$offset;
                        echo $url;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$result = curl_exec($ch);
$ret_val = curl_error($ch);
echo $result;
echo $ret_val;
curl_close($ch);

这导致我在这页面,

但是当我直接转到同一个网址时,它会给我44个结果.

还有更多的结果.

如何使用curl获得相同的结果?

编辑

(不起作用.)

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_REFERER, 'http://search.junta.iitk.ac.in');
curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');

$result = curl_exec($ch);

解决方法:

看起来目标服务器检查用户代理,如果它不是真正的浏览器,它会抛出一种方式(或通常表现不同).

尝试指定用户代理 – http://curl.haxx.se/docs/manpage.html

例如:

curl -A “Mozilla/5.0 (iPhone; U; cpu iPhone OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5” 07001

PHP中:

curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...