Heim >Backend-Entwicklung >PHP-Tutorial >php curl 取不到数据 帮我看下 是为什么

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

WBOY
WBOYOriginal
2016-06-06 20:51:061306Durchsuche

http://fuzhou.8684.cn/
php curl 取不到数据 帮我看下 是为什么
php curl 取不到数据 帮我看下 是为什么
php curl 取不到数据 帮我看下 是为什么
我的代码是这样。

<?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)

回复内容:

http://fuzhou.8684.cn/
php curl 取不到数据 帮我看下 是为什么
php curl 取不到数据 帮我看下 是为什么
php curl 取不到数据 帮我看下 是为什么
我的代码是这样。

<?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)

我只能说你的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',
));

所以说得认真看手册

补充一下。本来打算用curl+正则 采集8684的数据。
后来发现 爱帮网有免费的公交数据API。
http://www.aibang.com/api/

查了下PHP手册。
楼主将代码:

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',
));

调用的函数 curl_setopt 替换为 curl_setopt_array 试试。

Curl确实功能很强大!以前一直使用fsocket来在程序中发送http请求,后来试用curl后,感觉方便以及灵活得多!

收藏了一篇关于Curl的博文,虽然简单,但是感觉不错的!

http://www.360weboy.com/web-service/c...

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn