为什么curl_exec不输出数据?

时间:2018-12-10 10:20:12

标签: php parsing

header('Content-type: text/html; charset=utf-8');
require 'phpQuery/phpQuery.php';
function debug($arr) {
echo '<pre>'. print_r($arr, true). '</pre>';
}
function getContent($url, $data = []) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_COOKIEJAR, __DIR__ . '/cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, __DIR__ . '/cookie.txt');
$res = curl_exec($ch);
curl_close($ch);
return $res;
}

$urlAuth = 'https://auth.mail.ru/cgi-bin/auth';
$url = 'https://wf.mail.ru/officers';
$auth_data = [
'Page'          => 'https://wf.mail.ru/',
'FakeAuthPage'  => 'https://wf.mail.ru/auth',
'Login'         => 'MyNail',
'Password'      => 'MyPass',
'do_login'      => ''
 ];

 $data = getContent($urlAuth, $auth_data);
 $data = getContent($url);
 debug($data);

在cookie中,数据写得很好,但是当我转到页面wf.mail.ru/legss时,内容不会显示。 告诉我错误是什么。谢谢。

添加了错误输出,错误:来自服务器的空回复。但是,为什么答案是空的?

我添加到getContent()

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_USERAGENT, 'Googlebot/2.1 (+http://www.google.com/bot.html)');
if (!empty($data))
    curl_setopt($ch, CURLOPT_POST, true);
else
    curl_setopt($ch, CURLOPT_POST, false);
curl_setopt($ch, CURLOPT_FAILONERROR, true);

0 个答案:

没有答案