php curl 取不到数据 帮我看下 是为什么


http://fuzhou.8684.cn/
2012-12-27_143954.png
2012-12-27_144048.png
2012-12-27_144128.png
我的代码是这样。

<?php
$url = 'http://fuzhou.8684.cn/auto.php?cityid=53&keys=%E4%BE%A8';
$ch = curl_init($url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_COOKIE, 'www8684cnhome_ecity=fuzhou; www8684cnhome_ecity_dt=guangzhou; bdshare_firstime=1355906550109; tip2012-12-24=1; fid=8684; CNZZDATA30024467=cnzz_eid=31662027-1355906564-http%253A%252F%252Fwww.8684.cn%252F&ntime=1356586054&cnzz_a=13&retime=1356587626999&sin=none&ltime=1356587626999&rtime=2; tip2012-12-26=1');

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Accept' => '*/*',
    'Accept-Charset' => 'UTF-8,*;q=0.5',
    'Accept-Encoding' => 'gzip,deflate,sdch',
    'Accept-Language' => 'zh-CN,zh;q=0.8',
    'Connection' => 'keep-alive',
    'Content-Type' => 'application/x-www-form-urlencoded; charset=UTF-8',
    'Referer' => 'http://fuzhou.8684.cn/',
    'User-Agent' => 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',
    'X-Requested-With' => 'XMLHttpRequest',
));
$dat = curl_exec($ch);
var_dump(curl_error($ch));

//curl_close($ch);
var_dump($dat);
//var_dump(curl_error($ch));

可是输出的是
string(23) "Empty reply from server" bool(false)

php curl

kbkscs 11 years, 2 months ago

我只能说你的 curl 手册没有看认真, CURLOPT_HTTPHEADER 这个选项的用法肯定是按你自己想象的来的,实际上并不是这样,应该

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Accept: */*',
    'Accept-Charset: UTF-8,*;q=0.5',
    'Accept-Encoding: gzip,deflate,sdch',
    'Accept-Language: zh-CN,zh;q=0.8',
    'Connection: keep-alive',
    'Content-Type: application/x-www-form-urlencoded; charset=UTF-8',
    'Referer: http://fuzhou.8684.cn/',
    'User-Agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',
    'X-Requested-With: XMLHttpRequest',
));

所以说得认真看手册

Kaede_君 answered 11 years, 2 months ago

Your Answer