如何从另一个域获取curl和php的json数据?

时间:2011-12-21 18:39:32

标签: php javascript xml curl jsonp

我正在向页面发出请求并使用curl返回一些结果。

使用javascript我可以像$.getJSON一样使用:

$.getJSON('https://ajax.googleapis.com/ajax/services/search/images?q=fuzzy%20monkey&v=1.0&callback=?', function(response) {
    console.log(response.responseData);
});

但是如果javascript没有启用我想使用CURL。我只是不确定如何。

我也不一定需要响应为json,xml也可以

任何想法? 感谢

编辑:我也不想使用file_get_contents()但纯粹的卷曲

1 个答案:

答案 0 :(得分:3)

这将返回您指定的URL中的JSON数据。来自the manual

<?php
        // create curl resource
        $ch = curl_init();

        // set url
        curl_setopt($ch, CURLOPT_URL, "https://ajax.googleapis.com/ajax/services/search/images?q=fuzzy%20monkey&v=1.0");

        //return the transfer as a string
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

        // $output contains the output string
        $output = curl_exec($ch);

        // close curl resource to free up system resources
        curl_close($ch);     
?>

这完全取决于主机(在本例中为Google)返回的数据是JSON,XML,HTML等。除非它们通过API提供了这样做的方法,否则无法控制它。

mangobug指向Getting jSON Data with PHP (curl method)的链接向您展示了如何发送和接收JSON数据以及如何在必要时处理身份验证。