我在个人项目上有点迷失并寻求帮助。我找到了一个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'];
答案 0 :(得分:0)
我最近使用cURL的一个项目遇到了类似的问题。
事实证明,在尝试使用cURL加载网址时,我必须包含网址的http://
和/或www.
部分。没有它们,cURL将不会打开URL。我最终编写了一个脚本,可以尝试不同的组合,因为并非所有站点都响应一个特定的组合。
我从您上次评论中看到,var_dump
中的网址不包含这些内容。如果你添加它们,那么希望这将解决你的问题。