显示JSON响应中的用户名

时间:2013-04-14 00:59:31

标签: php json api curl

我正在尝试通过enjin API显示此JSON响应中的所有用户名列表,但我收到此错误:

警告:为foreach()提供的参数无效

代码

<?php

$s = curl_init();
curl_setopt($s, CURLOPT_URL, 'http://oceanix.enjin.com/api/get-users');

$output = curl_exec($s);
curl_close($s);

$decodedJson = json_decode($output);
?>

<table>
    <tr>
        <th>username</th>
    </tr>
<?php

    foreach ($decodedJson as $username) { ?>
    <tr>
        <td><?php echo $username->username; ?></td>
    </tr>
<?php 
}?>
</table>

感谢任何帮助。感谢

1 个答案:

答案 0 :(得分:1)

你没有设置它以便它进入变量,而是被发送到输出流。

添加:

curl_setopt($s, CURLOPT_RETURNTRANSFER, 1);

在致电curl_exec()之前,请将其放入您的变量中。有关CURLOPT_RETURNTRANSFER的信息,请参见curl_setopt

  

TRUE,将传输作为curl_exec()返回值的字符串返回,而不是直接输出。

有效的完整代码:

<?php

$s = curl_init();
curl_setopt($s, CURLOPT_URL, 'http://oceanix.enjin.com/api/get-users');
curl_setopt($s, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($s);
curl_close($s);

$decodedJson = json_decode($output);
?>

<table>
    <tr>
        <th>username</th>
    </tr>
<?php

    foreach ($decodedJson as $username) { ?>
    <tr>
        <td><?php echo $username->username; ?></td>
    </tr>
<?php 
}?>
</table>