PHP список игроков из status

Тема в разделе "Веб-технологии", создана пользователем Se7en_RUS, 15 апр 2016.

  1. Se7en_RUS

    Se7en_RUS

    Сообщения:
    53
    Симпатии:
    11
    Здравствуйте, мне необходимо получать список игроков и их steamid с сервера через php.

    Через команду status получаю информацию, обрезаю ненужные строчки и получаю массив такого вида:
    PHP:
    Array
    (
        [
    0] => #  2 1 "Player 1" STEAM_1:0:123456 00:22 22 0 active 80000 192.168.1.1:27005
        
    [1] =>#  3 1 "Player 2" STEAM_1:0:654321 00:11 11 0 active 80000 192.168.1.1:27005
    )
    Помогите правильно разбить массив, что бы можно было извлечь имя, ид, время и.т.д у каждого игрока.
     
    Последнее редактирование: 15 апр 2016
  2. Primo

    Primo Где мои манеры

    Сообщения:
    1.190
    Симпатии:
    306
    PHP:
    <?

        
    $ctrl = new rcon($ip,$port,"rcon_pass");
        
    $ctrl->Auth();
        
    $stdata $ctrl->rconCommand("status");
        
    $array=explode("#"$stdata);
        {
            
    ?>
            <table border="0" cellspacing="2" cellpadding="1" width="99%">
                <tbody>
                <tr>
                    <td>№</td>
                    <td>Слот</td>
                    <td>Ник</td>
                    <td>STEAMID</td>
                    <td>Время игры</td>
                    <td>Пинг</td>
                    <td>loss</td>
                    <td>state</td>
                    <td>rate</td>
                    <td>Адрес</td>
                    </tr>
                <?
            
    do
            {
                
    preg_match_all('#"(.*(?<=\\\)"*.*?)"|"([^"]+?)"#uis'$array[$n], $out); // Вырезка ника
                
    $out[0] = str_replace('"'''$out[0]); // Удаление кавычек
                
    $name $out[0]['0'];
                
    $array[$n] = preg_replace_callback('~"(.*?)"~s',create_function('$matches','return preg_replace("~\s*~s", "", $matches[0]);'),$array[$n]); // Очистка пробелов в нике
                
    list($id2$id$userid$_lon$uniqueid$connected$ping$loss$state$rate$adr) = preg_split("~\s* \s*~"$array[$n]); // Присваивание ячеек переменным
             
            
                
    if($adr null)
                {
                    
    ?>
                        <tr bgcolor="#EAEAEA" onClick="open_close('<? echo $uniqueid ;?>')" style="cursor:pointer;">
                        <td><? echo $id?></td>
                        <td><? echo $userid?></td>
                        <td><? echo $name;?></td>
                        <td><? echo $uniqueid?></td>
                        <td><? echo $connected?></td>
                        <td><? echo $ping?></td>
                        <td><? echo $loss?></td>
                        <td><? echo $state?></td>
                        <td><? echo $rate?></td>
                        <td><? echo $adr?></td>
                        </tr>
                        <tr>
                <?
                $n 
    += 1;
            }
            while (
    $array[$n] > null);
        
    ?>
                </tbody>
            </table>
            <br />
        <?
        
    }

    ?>
    Примерный набросок
     
    666FoX666 нравится это.