PHP&解析JSON响应

时间:2011-08-18 07:04:55

标签: php json

我正在尝试通过REST使用网络服务。

我终于得到了我想要的结果(或者至少我认为我是),但我不知道如何处理它。响应格式是JSON ..我尝试通过json_decode()输出它以将其作为数组,然后我可以用它做一些事情。

你可以看到我得到了“某些东西”作为回应,因为我正在回应我是CURL'ing的网址

我知道这是一个教育问题,但这是我第一次对此进行短途旅行,所以任何帮助都会受到赞赏。同样,我的最终目标是显然以可读格式输出数据。

<?php

    if(isset($_GET['word']))
    {
        $result= get_response_json($_GET['word']);
    } else {$result = "";}

    function get_response_json($word)
    {
        $postURL = "http://rhymebrain.com/talk?function=getRhymes&word=".urlencode($word);
        echo $postURL;
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $postURL);
        curl_setopt($ch, CURLOPT_HEADER, false);
        //curl_setopt($ch, CURLOPT_POST, true);
        $result = curl_exec($ch);
        curl_close($ch);

        return $result;
    }

?>

<html>
    <title>Test Rhyme</title>  
<body>

    <form action="<?=$_SERVER['PHP_SELF'];?>" method="get">
        <input type="input" name="word" />
        <input type="submit" value="Submit" />
    </form>
    <div id="results">
        <?php
            print_r(json_decode($result, true));
        ?>
    </div>    
</body>

</html>

3 个答案:

答案 0 :(得分:3)

点击此处:http://php.net/manual/en/function.curl-exec.php。我看到的一个值得注意的事情就是:

  

成功时返回TRUE,失败时返回FALSE。但是,如果设置了CURLOPT_RETURNTRANSFER选项,它将在成功时返回结果,在失败时返回FALSE。

请注意,如果您搜索“curl_get(”。

,则会有一个很好的示例

答案 1 :(得分:1)

以下是一个例子:

$json = '[
    {
        "ID": "1001",
        "Phone": "5555555555"
    }
]';

$jsonArray = json_decode($json);

foreach($jsonArray as $value){
    $id = $value->ID;
    $phone = $value->Phone;
}

答案 2 :(得分:0)

这是一种没有cURL的简化方法

function get_response_json($word)
    {
        $postURL = "http://rhymebrain.com/talk?function=getRhymes&word=".urlencode($word);
        $json = file_get_contents($postURL);
        return $json;
    }