php - 如何解析 Minecraft ops.json 以显示所有已操作用户、他们的 UUID 和已操作用户总数
问题描述
对不起,如果这个标题没有意义,我对在 PHP 中处理 JSON 文件非常陌生。我几乎到处查看并多次改写我的问题,我得到的每个答案似乎都不适用于我的 JSON 文件,不确定 Minecraft 是否做了不同的事情或者我是否遗漏了一些东西。感谢任何对此作出回应的人!
目标
在我的网站上以适当的格式列出我的 Minecraft 服务器上的所有操作员及其 UUID 和 OP 级别。我还想显示当前在服务器上操作的人数。
这是我的 PHP 代码
$serverdir = "../Minecraft Server/";
$json_url = $serverdir."ops.json";
$json = file_get_contents($json_url);
$data = json_decode($json, TRUE);
<?php
foreach ($data as $value) {
echo "$value <br>";
}
这段代码目前只吐出 Array 5 次,我必须将$data更改为$data[ 1-5 ]才能获得实际输出,但它输出用户名、UUID 和级别,但我不知道如何格式化这种类型的输出。
这是 JSON 文件
[
{
"uuid": "3afa9281-a239-453f-9538-49b57d9f2d06",
"name": "Deathx90",
"level": 2,
"bypassesPlayerLimit": false
},
{
"uuid": "461e6427-1d5c-43e3-b4ee-f8361884c3a2",
"name": "Command_String",
"level": 2,
"bypassesPlayerLimit": false
},
{
"uuid": "1ab6c2d3-6cae-4937-81af-cf348ca0f16c",
"name": "sarcazsm",
"level": 2,
"bypassesPlayerLimit": false
},
{
"uuid": "83619f6c-d259-4da2-868b-eba807e15b37",
"name": "Monke_Syndrome",
"level": 2,
"bypassesPlayerLimit": false
},
{
"uuid": "584f7a2f-2f8c-453e-a459-6ce8a683f04c",
"name": "Kreyo813",
"level": 2,
"bypassesPlayerLimit": false
}
]
解决后:
解决方案
您也可以使用 php 对象表示法
$Object = json_decode($json);
foreach($Object as $obj){
echo $obj->uuid,'<br>',
$obj->name,'<br>',
$obj->level,'<br>';
}
您可以使用 count 来获取用户数,仅作为示例
$Object = json_decode($json);
$count = count($Object);
echo '<div><p>Number of OPed Users: (',$count,')</p></div>';
foreach($Object as $obj){
echo '<div><p>',$obj->uuid,'<br>',
$obj->name,'<br>',
$obj->level,'</p></div><hr>';
}
推荐阅读
- c# - 当用户说 y ANYWHERE 时我们如何触发 X
- pandas - Pandas - 如何从多行的值中获取每行的最小值
- azure - Azure Terraform Virtual Vetwork 对等互连错误(对等两个现有 vnet)
- java - Java - PEM 文件中的 RSA 公钥 - java.lang.NoClassDefFoundError: org/bouncycastle/asn1/x509/SubjectPublicKeyInfo
- javascript - 如何修改上传功能的前端代码
- flutter - 没有 Firebase 项目的 Flutter Admob
- javascript - 为什么使用 JavaScript 的 find() 方法返回未定义?
- c# - 从同一项目中的另一个 XAML 窗口访问 CoreWebView2 时为空
- objective-c - 同步运行 NSTask
- c# - C#将数据对象添加到现有项目中的所有服务