Im programming a website where I can query server details from a game server. The problem is, that Ark sometimes prints empty playernames. That happens because there connecting at this moment or because they're bots. I dont want to show them on my website. The problem is, that i don't know how to exclude them. Maybe somebody can help me. It prints something like this:
Never Sober: 00h:05m:11s
kishko: 00h:05m:03s
FarmersmurfX: 00h:01m:47s
Furiousdiamon3: 00h:01m:21s
: 00h:00m:00s
: 00h:00m:00s
: 00h:00m:00s
And I dont want the last three to be shown.
I use this to display the players on my website and convert the seconds to time:
<?php
foreach ($serverstatus->players as $player) {
echo('<h5 >');
$rawtimeconv = $player->raw->time;
$rawtimeconv = round($rawtimeconv);
$output = sprintf('dh:dm:ds', ($rawtimeconv/ 3600),($rawtimeconv/ 60 % 60), $rawtimeconv% 60);
echo $player->name . ": ";
echo $output;
echo "</h5><br>";
}
?>
And this is my Json file.
```{
"name":"MTSArk.co.uk [ARENA] Deathmatch - (v344.3)",
"map":"ArenaModMap",
"password":false,
"raw":{
"protocol":17,
"folder":"ark_survival_evolved",
"game":"ARK: Survival Evolved",
"appId":346110,
"numplayers":72,
"numbots":0,
"listentype":"d",
"environment":"w",
"secure":1,
"version":"1.0.0.0",
"steamid":"90156878733671434",
"tags":[
"",
"OWNINGID:90156878733671434",
"OWNINGNAME:90156878733671434",
"NUMOPENPUBCONN:20",
"P2PADDR:90156878733671434",
"P2PPORT:7800",
"LEGACY_i:0"
]
},
"maxplayers":70,
"players":[
{
"name":"123",
"raw":{
"score":0,
"time":5368.2802734375
}
},
{
"name":"Happy_Ghost",
"raw":{
"score":0,
"time":134.0287322998047
}
},
{
"name":"123",
"raw":{
"score":0,
"time":124.54788970947266
}
},
{
"name":"᠌",
"raw":{
"score":0,
"time":77.85694885253906
}
},
{
"name":"",
"raw":{
}
},
{
"name":"",
"raw":{
}
}
],
"bots":[
],
"connect":"85.190.148.87:7800",
"ping":47
}```
CodePudding user response:
To skip empty names, add this at the beginning of your foreach
loop :
if(!strlen($player->name))
continue;