Curl_exec在php中返回null

时间:2015-03-23 05:23:18

标签: php curl

使用curl操作获取数据时遇到问题。在这里我隐藏了令牌,如果我只在我的浏览器中使用url然后它返回数据,但这里它是null。

<?php 
$token = "TOKEN"; //the actual token hidden
$url = "https://crm.zoho.com/crm/private/xml/Leads/getRecords?authtoken=".$token."&scope=crmapi";
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);

$result = curl_exec($ch);
curl_close($ch);
echo $result; //does not return anything
?>

我错了,请帮助我。

3 个答案:

答案 0 :(得分:9)

您可以尝试使用用于返回输出的CURLOPT_RETURNTRANSFERcurl_errno()来跟踪错误:

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "http://example.com/my_url.php" ); 
curl_setopt($ch, CURLOPT_POST, 1 ); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
$postResult = curl_exec($ch); 

if (curl_errno($ch)) { 
   print curl_error($ch); 
} 
curl_close($ch); 

有用的链接:curl_errno()curl_error()

答案 1 :(得分:0)

尝试添加以下行:

<?php 
$token = "TOKEN"; //the actual token hidden
$url = "https://crm.zoho.com/crm/private/xml/Leads/getRecords";
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
    curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, array("authtoken"=>$token,"scope"=>"crmapi"));
$result = curl_exec($ch);
curl_close($ch);
echo $result; //does not return anything
?>

答案 2 :(得分:0)

请看下面的文章,不只是关闭验证,你应该用pem文件更新你的php.ini

https://snippets.webaware.com.au/howto/stop-turning-off-curlopt_ssl_verifypeer-and-fix-your-php-config/

任何运行最新Linux发行版的人都可能已经没问题了,因为他们通过他们的包管理器获得了捆绑的curl库,而最近的curl库附带了Mozilla.org的最新CA根证书包。

对于此文件未附带的PHP安装(如Windows PHP发行版),您需要下载CA根证书包并告诉PHP在哪里可以找到它。