1

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 class="dark">');
 $rawtimeconv = $player->raw->time;
 $rawtimeconv = round($rawtimeconv);
 $output = sprintf('%02dh:%02dm:%02ds', ($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
}```

1
  • So...you can just check whether $player->raw->time exists / returns anything, before trying to print any values. What have you tried? Should be a pretty straightforward if statement. Commented Mar 8, 2022 at 0:25

1 Answer 1

2

To skip empty names, add this at the beginning of your foreach loop :

if(!strlen($player->name))
    continue;
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.