【发布时间】:2020-03-10 14:22:35
【问题描述】:
我是php,js的小菜鸟,我需要制作一个扫描API URL https://api.example.com/userid的脚本
其中 userid 必须从 0 扫描到 100 并且只显示包含特定数组中的值的 API 结果以及那些在该数组中没有内容的 API 结果,根本不显示他们。
我将衷心感谢,谢谢。
【问题讨论】:
标签: javascript php arrays json api
我是php,js的小菜鸟,我需要制作一个扫描API URL https://api.example.com/userid的脚本
其中 userid 必须从 0 扫描到 100 并且只显示包含特定数组中的值的 API 结果以及那些在该数组中没有内容的 API 结果,根本不显示他们。
我将衷心感谢,谢谢。
【问题讨论】:
标签: javascript php arrays json api
您正在寻找的是for 循环。在您的 api.php 文件中,如果您只想扫描 100 个房间,则无需指定查询参数。如果我理解正确的话,您从 API 中检索到的已经是 JSON,这就是为什么您只是输出从该请求中获得的任何内容。
你可以这样做:
$data = ['rooms' => []];
for ($i = 1; $i < 101; $i++) {
$url = 'https://www.api.example.com/'. $i. '-roomid';
$result = file_get_contents($url);
$json = json_decode($result);
if (!empty($json['members'])) {
$data['rooms'][] = $json; // only append to the list if there are members
}
}
echo json_encode($data);
因此,在我上面的示例中,我 decode 一个 JSON 字符串,它创建了一个 stdClass 对象。从那里,您可以解析从该 API 返回的任何内容并构建某种多维数组和encode 它。编码后,您可以回显它。
很遗憾,我不能再告诉你了,因为我没有看到你正在使用的 API 的响应。
【讨论】:
if (empty($json['members'])) continue;,continue 将跳到循环的下一个迭代。