View Single Post
4ever16
Veteran Member
Join Date: Apr 2015
Old 02-16-2020 , 07:16   Re: Get players and steam id with php rcon
Reply With Quote #13

Quote:
Originally Posted by fysiks View Post
You are not passing your status string to the function. You need to replace "$YourStatusString" with your variable.
Well one question did you test the code before posting?

Ok so look i did what you sed now and it prints this.
PHP Code:
Warningarray_combine(): Both parameters should have an equal number of elements in mywebsite.com/public_html/rcon/rcon.php on line 43 
Line 43 is this line.
PHP Code:
 $row array_combine($header$row); 
PHP Code:
<?php
require 'SourceQuery.class.php';    
$Query = new SourceQuery( );
    
try
{
$Query->Connect'SERVER IP'27015 );        
$Query->SetRconPassword'PASSWORD' );            
$YourStatusString $Query->Rcon'status' );    

function 
parse_hlds_status($StatusString)
{
    
// parse everything up to the player list
    
$StatusArray preg_split("/(\r\n|\n|\r)/"$StatusString);
    
    
$out['hostname'] = array_shift($StatusArray);
    
$out['version'] = array_shift($StatusArray);
    
$out['tcp/ip'] = array_shift($StatusArray);
    
$out['map'] = array_shift($StatusArray);
    
$out['maxplayers'] = array_shift($StatusArray);
    
    
array_shift($StatusArray); // Get rid of blank line
    
    // Parse player list
    
$PlayerListString $StatusArray// Including header row
    
array_pop($PlayerListString);
    
    
// Parse headers
    
$header str_getcsv(array_shift($PlayerListString), $delimiter " ");
    
    
// Parse players
    
$PlayerList array_map('parse_player_line'$PlayerListString);
    
array_walk($PlayerList'_combine_array'$header);
    
    
$out['Players'] = $PlayerList;
    
    return 
$out;
}

// Define private functions
function _combine_array(&$row$key$header)
{
    
$row array_combine($header$row);
}

function 
parse_player_line($string)
{
    
$temp str_getcsv($string$delimiter " ");
    
array_shift($temp);
    return 
$temp;




print_r(parse_hlds_status($YourStatusString)); 
    


$Query->Disconnect( );
    }
catch( 
SQueryException $e )
    {
$Query->Disconnect( );
    }
?>
Then i googled the error and found this thread: https://stackoverflow.com/questions/...ferent-lengths

So i used this code on line 43.
PHP Code:
// Define private functions
function _combine_array(&$row$key$header)
{
    
$row array_combine(array_intersect_key($header$row), array_intersect_key($row$header));

With this new code it prints wierd stuff. Steam id and user name is showing in some arrays and some not. So basiccly there is something wrong with your code. Do you have a solution and can u test stuff before posting?

This is what it prints with that new code @ line 43. When it printed this there were 14 users online but as i sed steam id and nickname is not printed correctly. Some are missing and so on. The error i posted is the problem anyways.

PHP Code:
array(6) {
  [
"hostname"]=>
  
string(61"lhostname:  SERVER NAME"
  
["version"]=>
  
string(45"version :  48/1.1.2.7/Stdio 2117 secure  (10)"
  
["tcp/ip"]=>
  
string(30"tcp/ip  :  SERVER IP"
  
["map"]=>
  
string(37"map     :  de_dust2 at: 0 x, 0 y, 0 z"
  
["maxplayers"]=>
  
string(29"players :  14 active (15 max)"
  
["Players"]=>
  array(
15) {
    [
0]=>
    array(
10) {
      [
"#"]=>
      
string(1"1"
      
[""]=>
      
string(0""
      
["name"]=>
      
string(1"G"
      
["userid"]=>
      
string(3"779"
      
["uniqueid"]=>
      
string(18"STEAM_0:1:32244765"
      
["frag"]=>
      
string(0""
      
["time"]=>
      
string(0""
      
["ping"]=>
      
string(1"0"
      
["loss"]=>
      
string(5"05:09"
      
["adr"]=>
      
string(0""
    
}
    [
1]=>
    array(
10) {
      [
"#"]=>
      
string(1"2"
      
[""]=>
      
string(3"763"
      
["name"]=>
      
string(18"STEAM_0:0:16630816"
      
["userid"]=>
      
string(0""
      
["uniqueid"]=>
      
string(2"13"
      
["frag"]=>
      
string(5"25:00"
      
["time"]=>
      
string(0""
      
["ping"]=>
      
string(0""
      
["loss"]=>
      
string(0""
      
["adr"]=>
      
string(1"4"
    
}
    [
2]=>
    array(
10) {
      [
"#"]=>
      
string(1"3"
      
[""]=>
      
string(0""
      
["name"]=>
      
string(1"0"
      
["userid"]=>
      
string(5"25:20"
      
["uniqueid"]=>
      
string(0""
      
["frag"]=>
      
string(0""
      
["time"]=>
      
string(2"23"
      
["ping"]=>
      
string(0""
      
["loss"]=>
      
string(0""
      
["adr"]=>
      
string(0""
    
}
    [
3]=>
    array(
10) {
      [
"#"]=>
      
string(1"4"
      
[""]=>
      
string(2"17"
      
["name"]=>
      
string(5"45:19"
      
["userid"]=>
      
string(0""
      
["uniqueid"]=>
      
string(0""
      
["frag"]=>
      
string(2"34"
      
["time"]=>
      
string(0""
      
["ping"]=>
      
string(0""
      
["loss"]=>
      
string(0""
      
["adr"]=>
      
string(1"0"
    
}
    [
4]=>
    array(
10) {
      [
"#"]=>
      
string(1"5"
      
[""]=>
      
string(0""
      
["name"]=>
      
string(1"8"
      
["userid"]=>
      
string(5"22:41"
      
["uniqueid"]=>
      
string(0""
      
["frag"]=>
      
string(0""
      
["time"]=>
      
string(2"13"
      
["ping"]=>
      
string(0""
      
["loss"]=>
      
string(0""
      
["adr"]=>
      
string(0""
    
}
    [
5]=>
    array(
10) {
      [
"#"]=>
      
string(1"6"
      
[""]=>
      
string(2"15"
      
["name"]=>
      
string(0""
      
["userid"]=>
      
string(7"1:09:45"
      
["uniqueid"]=>
      
string(0""
      
["frag"]=>
      
string(0""
      
["time"]=>
      
string(0""
      
["ping"]=>
      
string(1"8"
      
["loss"]=>
      
string(0""
      
["adr"]=>
      
string(0""
    
}
    [
6]=>
    array(
10) {
      [
"#"]=>
      
string(1"7"
      
[""]=>
      
string(2"hr"
      
["name"]=>
      
string(3"766"
      
["userid"]=>
      
string(19"STEAM_0:0:449414351"
      
["uniqueid"]=>
      
string(0""
      
["frag"]=>
      
string(0""
      
["time"]=>
      
string(1"9"
      
["ping"]=>
      
string(5"22:14"
      
["loss"]=>
      
string(0""
      
["adr"]=>
      
string(0""
    
}
    [
7]=>
    array(
10) {
      [
"#"]=>
      
string(1"8"
      
[""]=>
      
string(18"STEAM_0:0:26858302"
      
["name"]=>
      
string(0""
      
["userid"]=>
      
string(0""
      
["uniqueid"]=>
      
string(1"2"
      
["frag"]=>
      
string(5"21:58"
      
["time"]=>
      
string(0""
      
["ping"]=>
      
string(0""
      
["loss"]=>
      
string(2"17"
      
["adr"]=>
      
string(0""
    
}
    [
8]=>
    array(
10) {
      [
"#"]=>
      
string(1"9"
      
[""]=>
      
string(0""
      
["name"]=>
      
string(1"3"
      
["userid"]=>
      
string(5"21:42"
      
["uniqueid"]=>
      
string(0""
      
["frag"]=>
      
string(0""
      
["time"]=>
      
string(2"26"
      
["ping"]=>
      
string(0""
      
["loss"]=>
      
string(0""
      
["adr"]=>
      
string(0""
    
}
    [
9]=>
    array(
10) {
      [
"#"]=>
      
string(16"101-587-120-9874"
      
[""]=>
      
string(1"0"
      
["name"]=>
      
string(5"25:16"
      
["userid"]=>
      
string(0""
      
["uniqueid"]=>
      
string(0""
      
["frag"]=>
      
string(2"20"
      
["time"]=>
      
string(0""
      
["ping"]=>
      
string(0""
      
["loss"]=>
      
string(0""
      
["adr"]=>
      
string(1"0"
    
}
    [
10]=>
    array(
10) {
      [
"#"]=>
      
string(31"kilowatt1337           #Zowie"
      
[""]=>
      
string(5"18:57"
      
["name"]=>
      
string(0""
      
["userid"]=>
      
string(0""
      
["uniqueid"]=>
      
string(2"11"
      
["frag"]=>
      
string(0""
      
["time"]=>
      
string(0""
      
["ping"]=>
      
string(0""
      
["loss"]=>
      
string(1"0"
      
["adr"]=>
      
string(19"ip"
    
}
    [
11]=>
    array(
10) {
      [
"#"]=>
      
string(29"Mustafa al Baghdadi! Malickis"
      
[""]=>
      
string(1"6"
      
["name"]=>
      
string(5"08:01"
      
["userid"]=>
      
string(0""
      
["uniqueid"]=>
      
string(0""
      
["frag"]=>
      
string(0""
      
["time"]=>
      
string(1"9"
      
["ping"]=>
      
string(0""
      
["loss"]=>
      
string(0""
      
["adr"]=>
      
string(0""
    
}
    [
12]=>
    array(
10) {
      [
"#"]=>
      
string(0""
      
[""]=>
      
string(18"STEAM_0:0:45222538"
      
["name"]=>
      
string(0""
      
["userid"]=>
      
string(0""
      
["uniqueid"]=>
      
string(1"2"
      
["frag"]=>
      
string(5"10:59"
      
["time"]=>
      
string(0""
      
["ping"]=>
      
string(0""
      
["loss"]=>
      
string(0""
      
["adr"]=>
      
string(1"9"
    
}
    [
13]=>
    array(
10) {
      [
"#"]=>
      
string(0""
      
[""]=>
      
string(0""
      
["name"]=>
      
string(0""
      
["userid"]=>
      
string(1"0"
      
["uniqueid"]=>
      
string(5"03:05"
      
["frag"]=>
      
string(0""
      
["time"]=>
      
string(0""
      
["ping"]=>
      
string(2"60"
      
["loss"]=>
      
string(0""
      
["adr"]=>
      
string(0""
    
}
    [
14]=>
    array(
1) {
      [
"#"]=>
      
string(5"users"
    
}
  }


Last edited by 4ever16; 02-16-2020 at 07:27.
4ever16 is offline