我正在尝试通过cURL登录网站并让它返回给我实际页面。到目前为止,我只能通过反馈链接获取页面的页脚并出现此错误:
警告:curl_setopt_array()[function.curl-setopt-array]:数组键 必须是第18行的CURLOPT常量或等效整数值
装载
第18行是“);”在卷曲数组的末尾
到目前为止,我已经弄明白,如果我只是从我的浏览器中输入我的网址中的access_token的网站名称,我将自动登录,所以我试图让cURL模仿它。
<?php
$ckfile =' __utma=173730677.1410450142.1370837396.1370843059.4; __utmz=173730677.1370843059.4.3.utmcsr=web.com|utmccn=(referral)|utmcmd=referral|utmcct=/ou; __utma=64278953.892306882.1370766510.1370838026.4; __utmz=64278953.4.3.utmcsr=.com|utmccn=(referral)|utmcmd=referral|utmcct=/signin; __utmc=64278953; __utmc=173730677; __utmb=173730677.5.10.1370843059; __utmb=64278953.1.10';
$ch = curl_init();
curl_setopt_array(
$ch,
array(
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_URL => 'https://web.com',
CURLOPT_COOKIEFILE=> $ckfile,
CURLOPT_USERAGENT =>'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0',
CURLOPT_GET=> true,
CURLOPT_REFERER => 'https://.com/signin',
CURLOPT_GETFIELDS=>'#access_token=',
CURLOPT_RETURNTRANSFER => true
)
);
$response = curl_exec($ch);
curl_close($ch);
echo '<pre>';
print_r($response);
?>
答案 0 :(得分:0)
CURLOPT_GET
和CURLOPT_GETFIELDS
不是cURL的有效选项。 POST
可能存在选项,但不适用于GET
。只需将查询字符串添加到URL中即可。
此外,请确保将所有选项设置为cURL期望将其设置为的选项。 CURLOPT_COOKIEFILE
应设置为文件名,而不是cookie值。您想要CURLOPT_COOKIE
。
curl_setopt_array($ch, array(
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_URL => 'https://web.com?access_token=abc',
CURLOPT_COOKIE=> $ckfile,
CURLOPT_USERAGENT =>'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0',
CURLOPT_REFERER => 'https://web.com/signin',
CURLOPT_RETURNTRANSFER => true
));
请参阅PHP cURL文档了解所有选项:http://php.net/manual/en/function.curl-setopt.php