Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: как вывести функцию

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Как вывести функцию?
mdsanta
Отправлено: 13 Декабря, 2015 - 15:14:41
Post Id


Новичок


Покинул форум
Сообщений всего: 21
Дата рег-ции: Нояб. 2015  


Помог: 0 раз(а)




CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?php
  3. if(!function_exists('getmicrotime')) {
  4.    function getmicrotime() {
  5.        list($usec, $sec) = explode(" ", microtime());
  6.        return ((float)$usec + (float)$sec);
  7.    }
  8. }
  9. function getString(&$packet){
  10.    $str = "";
  11.    $n = strlen($packet);
  12.    for($i=0;($packet[$i]!=chr(0)) && ($i < $n);++$i)
  13.        $str .= $packet[$i];
  14.    $packet = substr($packet, strlen($str));
  15.    return trim($str);
  16. }
  17. function getChar(&$packet){
  18.    $char = $packet[0];
  19.    $packet = substr($packet, 1);
  20.    return $char;
  21. }
  22. function sortByKills($a, $b) {
  23.    if ($a['kills'] == $b['kills'])
  24.        return 0;
  25.    return ($a['kills'] > $b['kills']) ? -1 : 1;
  26. }
  27.  
  28. function serverInfo($server) {
  29.    list($ip,$port) = explode(":", $server);
  30.    $timeStart = getmicrotime();
  31.    $fp = @fsockopen('udp://'.$ip, $port);
  32.    if($fp) {
  33.        stream_set_timeout($fp, 1);
  34.        fwrite($fp,"\xFF\xFF\xFF\xFFTSource Engine Query\0\r");
  35.        $temp = fread($fp, 4);
  36.        $status = socket_get_status($fp);
  37.        if($status['unread_bytes']>0) {
  38.            $temp = fread($fp, $status['unread_bytes']);
  39.            $version = ord(getChar($temp));
  40.            $array = array();
  41.            $array['ping'] = (int)((getmicrotime() - $timeStart)*1000);
  42.            $array['status'] = "on";
  43.  
  44.            
  45.              
  46.   if($version == 109) {
  47.            $array['game'] = "cstrike";
  48. $array['ip'] = getString($temp);
  49.                $temp = substr($temp, 1);
  50.    $array['name'] = getString($temp);
  51.                                $temp = substr($temp, 1);
  52.                          $array['map'] = getString($temp);
  53.                $temp = substr($temp, 1);
  54.                getString($temp);
  55.                $temp = substr($temp, 1);
  56.                getString($temp);
  57.                $temp = substr($temp, 1);
  58.                $array['players'] = ord(getChar($temp));
  59.                $array['max_players'] = ord(getChar($temp));
  60.            
  61.  
  62.  
  63. } elseif($version == 73) {
  64.                $array['name'] = getString($temp);
  65.                $zz = $array['name'];
  66.                $temp = substr($temp, 1);
  67.                $array['map'] = getString($temp);
  68.                $temp = substr($temp, 1);
  69.                                $temp = substr($temp, 1);
  70.                getString($temp);
  71.                $temp = substr($temp, 1);
  72.                getString($temp);
  73.                                $temp = substr($temp, 3);
  74.                                $array['players'] = ord(getChar($temp));
  75.                $array['max_players'] = ord(getChar($temp));
  76.            }
  77.        } else
  78.            $array['status'] = 'off';
  79.        
  80.    }
  81.    return $array;
  82.    if ($array['status']== 'off') continue;
  83.  
  84.    
  85.    
  86. }
  87. function playersInfo($server) {
  88.    list($ip,$port) = explode(":", $server);
  89.    $array = array();
  90.    $fp = @fsockopen('udp://'.$ip, $port);
  91.    if($fp) {
  92.        stream_set_timeout($fp, 1);
  93.        $command = pack("V", -1) . 'W';
  94.        fwrite($fp, $command, strlen($command));
  95.        $temp = fread($fp, 5);
  96.        $lo = (ord($temp[1]) << 8) | ord($temp[0]);
  97.        $hi = (ord($temp[3]) << 8) | ord($temp[2]);
  98.        $data = "\xFF\xFF\xFF\xFF\x55".pack("V", ($hi << 16) | $lo);
  99.        fwrite($fp, $data);
  100.        $temp = fread($fp, 4);
  101.        $status = socket_get_status($fp);
  102.        if($status['unread_bytes']>0) {
  103.            echo $status['unread_bytes'];
  104.            $temp = fread($fp, $status['unread_bytes']);
  105.            while(strlen($temp) > 0) {
  106.                $player['name'] = getString($temp);
  107.                $temp = substr($temp, 1);
  108.                $lo = (ord($temp[1]) << 8) | ord($temp[0]);
  109.                $hi = (ord($temp[2]) << 8) | ord($temp[3]);
  110.                $player['kills'] = ($hi << 16) | $lo;
  111.                $temp = substr($temp, 4);
  112.                $f = @unpack("f1float", $temp);
  113.                $temp = substr($temp, 4);
  114.                $player['time'] = gmdate("H:i:s", (int)$f['float']);
  115.                $array[] = $player;
  116.            }
  117.            usort($array, "sortByKills");
  118.        }
  119.    }
  120.    return $array;
  121. }
  122.  
  123. print_r(serverInfo("$server2"));
  124.  
  125.  
  126. }
  127. ?>
  128.  


ребят помогите вывести данные о сервере в отдельном файле через этот конфиг..

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?php
  3.  
  4. require_once "function.php";
  5.  
  6. ..............................  
  7. ?>

решение нашел echo "$data[функция]";

(Отредактировано автором: 13 Декабря, 2015 - 15:24:59)

 
 Top
esterio
Отправлено: 14 Декабря, 2015 - 11:24:41
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




визиваете функцию и вивожите результат ее исполнения
PHP:
скопировать код в буфер обмена
  1. $data = serverInfo($server2);
  2. echo 'Status: ' . $data['status'];


Спойлер (Отобразить)
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB