只是一个简单的脚本卷曲到一个网站,为我的爱好项目采取一些数据。在终端它完美的工作,但与PHP它根本不起作用。我认为这与cookies有关
$ ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.pokemongomap.info/includes/mapdata.php");
curl_setopt($ch,CURLOPT_POST, true);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch,CURLOPT_POSTFIELDS, 'fromlat=52.352772543694165&tolat=52.353516320168715&fromlng=6.672205448722025&tolng=6.6761080628386935&fpoke=1&fgym=1');
curl_setopt($ch,CURLOPT_HTTPHEADER, array(
'Pragma: no-cache',
'Origin: http://www.pokemongomap.info',
'Accept-Encoding: gzip, deflate',
'Accept-Language: nl-NL,nl;q=0.8,en-US;q=0.6,en;q=0.4',
'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36',
'Content-Type: application/x-www-form-urlencoded; charset=UTF-8',
'Accept: application/json, text/javascript, */*; q=0.01',
'Cache-Control: no-cache',
'Cookie: PHPSESSID=5q2naanh8gj85utl2m96erjfa3; __atssc=reddit%3B1; cookieconsent_dismissed=yes; __atuvc=4%7C33%2C1%7C34; _ga=GA1.2.1355385211.1471162927; latlngzoom=19[##split##]52.35314443349598[##split##]6.674156755780354',
'X-Requested-With: XMLHttpRequest',
'Connection: keep-alive',
'Referer: http://www.pokemongomap.info/'
));
curl_setopt($ch, CURLOPT_VERBOSE, true);
$output = curl_exec($ch);
if ($output === FALSE) {
printf("cUrl error (#%d): %s<br>\n", curl_errno($ch),
htmlspecialchars(curl_error($ch)));
}
curl_close($ch);
var_dump($output);
返回 string(145)“ ] D )j Ûi Ѡ+4 z d紨)=qW +G Am~ f;c 6v ^ nG uJF ǜ ǜ{ T .9 s = m9G GFU % [ / r3| l# 7 1H)“
使用json_decode时返回NULL。
答案 0 :(得分:1)
根据PHP manual for curl_setopt,第二个参数应该是int或常量选项。请尝试以下代码:
flags = int("18573628", 16)
mask = int("00070000", 16)
result = flags & mask
print(hex(result))
=> '0x70000'
我还更改了你的最终执行以获取curl错误和curl_info,因为你使用的是详细模式,它将有助于定义你的请求有什么问题。