PHP变量与cURL混合

时间:2012-07-17 20:48:31

标签: php curl

我在个人项目上有点迷失并寻求帮助。我找到了一个cURL代码,该代码可以获取特定网址的Google+数量,并且在对您尝试获取的网址进行硬编码时效果很好。我试图使用GET基于表单数据运行此脚本。请参阅下面的工作和非工作示例。我也在为我正在改变的代码行加粗。

WORKS

*$url = "http://mashable.com";

 $ch = curl_init();  
 curl_setopt($ch, CURLOPT_URL, "https://clients6.google.com/rpc?key=AIzaSyCKSbrvQasunBoV16zDH9R33D88CeLr9gQ");
 curl_setopt($ch, CURLOPT_POST, 1);
 curl_setopt($ch, CURLOPT_POSTFIELDS, '[{"method":"pos.plusones.get","id":"p","params":{"nolog":true,"id":"' . $url . '","source":"widget","userId":"@viewer","groupId":"@self"},"jsonrpc":"2.0","key":"p","apiVersion":"v1"}]');
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json'));


 $curl_results = curl_exec ($ch);
 curl_close ($ch);

 $parsed_results = json_decode($curl_results, true);

 echo $parsed_results[0]['result']['metadata']['globalCounts']['count']; 

不起作用

$url = $_GET['url'];

 $ch = curl_init();  
 curl_setopt($ch, CURLOPT_URL, "https://clients6.google.com/rpc?key=AIzaSyCKSbrvQasunBoV16zDH9R33D88CeLr9gQ");
 curl_setopt($ch, CURLOPT_POST, 1);
 curl_setopt($ch, CURLOPT_POSTFIELDS, '[{"method":"pos.plusones.get","id":"p","params":{"nolog":true,"id":"' . $url . '","source":"widget","userId":"@viewer","groupId":"@self"},"jsonrpc":"2.0","key":"p","apiVersion":"v1"}]');
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json'));


 $curl_results = curl_exec ($ch);
 curl_close ($ch);

 $parsed_results = json_decode($curl_results, true);

 echo $parsed_results[0]['result']['metadata']['globalCounts']['count'];

1 个答案:

答案 0 :(得分:0)

我最近使用cURL的一个项目遇到了类似的问题。

事实证明,在尝试使用cURL加载网址时,我必须包含网址的http://和/或www.部分。没有它们,cURL将不会打开URL。我最终编写了一个脚本,可以尝试不同的组合,因为并非所有站点都响应一个特定的组合。

我从您上次评论中看到,var_dump中的网址不包含这些内容。如果你添加它们,那么希望这将解决你的问题。