所以,我在CLI上尝试了这个cURL并且它可以工作,但不能在我的PHP脚本上运行。
在我的PHP脚本中,当json中应包含更多特定数据时,它会显示{"staff":[],"reserved":[],"types":[]}
。当我使用cURL和使用file_get_contents
时都会发生这种情况。
当我通过浏览器打开它时,它也不起作用。它显示为空白。
请注意:我已经在PHP上创建了数百次卷曲的网络刮刀,通常效果很好。
这是我在CLI上使用的cURL:
curl "https://foodandfarmtour.theflybook.com/api/engine/_reservations/?id=FA860873-B947-4647-BF8C-2062628E09F9&from=2015-02-01&to=2015-03-05" -H "Cookie: PHPSESSID=f1dotub17jua33qhnoat71ddc5; fbe_aid=FA860873-B947-4647-BF8C-2062628E09F9; br_dft=m"%"2Fd"%"2FY" -H "Accept-Encoding: gzip, deflate, sdch" -H "Accept-Language: en-US,en;q=0.8,id;q=0.6,ms;q=0.4,jv;q=0.2" -H "User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.111 Safari/537.36" -H "Accept: */*" -H "Referer: https://foodandfarmtour.theflybook.com/book/trip/fb/?id=9932552A-8FF9-4A22-827F-3AAD4F909625" -H "X-Requested-With: XMLHttpRequest" -H "Connection: keep-alive" --compressed -k
这是我使用的PHP脚本:
$id = $args[0];
$start = date('Y-m-01');
$ch = curl_init('https://foodandfarmtour.theflybook.com/api/engine/_reservations/?id='.$id.'&from='.
$start.'&to='.date('Y-m-d', strtotime($start.' +32 days')));
var_dump('https://foodandfarmtour.theflybook.com/api/engine/_reservations/?id='.$id.'&from='.
$start.'&to='.date('Y-m-d', strtotime($start.' +32 days')));
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"Accept: */*",
// "Accept-Encoding:gzip, deflate, sdch",
"Accept-Language:en-US,en;q=0.8,id;q=0.6,ms;q=0.4,jv;q=0.2",
"Connection: keep-alive",
"User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.111 Safari/537.36",
"X-Requested-With: XMLHttpRequest",
"Host: foodandfarmtour.theflybook.com",
"Referer: https://foodandfarmtour.theflybook.com/book/trip/fb/?id=9932552A-8FF9-4A22-827F-3AAD4F909625",
"Cookie: PHPSESSID=f1dotub17jua33qhnoat71ddc5; fbe_aid=FA860873-B947-4647-BF8C-2062628E09F9; br_dft=m%2Fd%2FY"));
var_dump(curl_exec($ch));
return;
答案 0 :(得分:0)
您使用的是debian还是ubuntu?输入:
# apt-get install php5-curl
如果您使用RedHat / Fedora / CentOS,您必须输入:
# yum install php-curl
祝你好运!
答案 1 :(得分:0)
当你的网络服务器的php.ini文件中没有启用CURL时会发生这种情况。
在从Web服务器运行的PHP脚本中使用CURL
函数之前,只需验证在php ini中是否为web服务器启用了CURL
扩展名。
您可以执行<?php phpinfo(); ?>
答案 2 :(得分:0)
事实证明我输入了一个错误的链接到我的PHP cURL scraper。它与我在CLI中输入的URL不同。对不起大家。谢谢你试着回答!