解析来自Google Place api响应的数据(Json格式)

时间:2013-04-20 13:27:40

标签: php json curl google-places-api

我想如何从PHP数组中的google place api提供的响应中存储酒店名称和位置。如果我的搜索字符串是纽约的 餐厅

api的响应采用 json 格式。

我发送搜索请求的脚本是:

<?php
    if(isset($_GET['text']))
    {
        if(!empty($_GET['text']))
        {
            $search_text=strip_tags($_GET['text']);

            $hostname = "https://maps.googleapis.com/maps/api/place/textsearch/json?query=$search_text&sensor=true&key=AIzaSyDVdJtIAvhmHE7e2zoxA_Y9qWRpp6eE2o8"; 


            // read the post from PayPal system and add 'cmd'


            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, "$hostname");
            curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);

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

            if(!$res)
            {
                // error log
                echo'Unable to find results.';
            } else {    
                **// ALL output printing code goes down here**
                //$res=json_decode($res);
                //var_dump(json_decode($res));
                $obj=var_dump(json_decode($res, true));
                print_r($obj['"results']);




                }
        } else {
            echo'<h4><font color="red">Please enter the text to search.</font></h4>';
            }
    }
?>

嗯,上面代码的输出是json格式的。但我需要从json输出中检索餐厅名称及其位置。

所以,请建议我提取确切输出的方法。

1 个答案:

答案 0 :(得分:2)

正如我所看到的,结果键包含包含所需数据的数组。 做一些像:

$jsonContent = json_decode($res, true);

foreach ($jsonContent['results'] as $result) {

    // now you have the $result array that contains the location of the place
    // and the name ($result['formatted_address'], $result['name']) and other data.

}

我希望你知道从这一点开始做什么。