Цитата(Bloo @ 18.2.2014, 18:09)

dezdumona, помимо "просто картинка" надо еще скрипт который будет чекать сервер, а это уже мониторинг, что из полученных данных выводить это уже другой вопрос.
Только через сокет тогда
Код:
<?php
class founc_cron
{
public function getString(&$packet)
{
$str = "";
$n = strlen($packet);
for($i=0;($packet[$i]!=chr(0)) && ($i < $n);++$i)
$str .= $packet[$i];
$packet = substr($packet, strlen($str));
return trim($str);
}
public function getChar(&$packet)
{
$char = $packet[0];
$packet = substr($packet, 1);
return $char;
}
public function serverInfo($server)
{
list($ip,$port) = explode(":", $server);
$fp = @fsockopen('udp://'.$ip, $port);
$array = array();
if($fp)
{
stream_set_timeout($fp, 2);
fwrite($fp,"\xFF\xFF\xFF\xFFTSource Engine Query\0\r");
$temp = fread($fp, 4);
$status = socket_get_status($fp);
if($status['unread_bytes']>0)
{
$temp = fread($fp, $status['unread_bytes']);
$version = ord($this->getChar($temp));
$array['status'] = "on";
if($version == 109)
{
$array['ip'] = $this->getString($temp);
$temp = substr($temp, 1);
$array['name'] = $this->getString($temp);
$temp = substr($temp, 1);
$array['map'] = $this->getString($temp);
$temp = substr($temp, 1);
$this->getString($temp);
$temp = substr($temp, 1);
$this->getString($temp);
$temp = substr($temp, 1);
$array['players'] = ord($this->getChar($temp));
$array['max_players'] = ord($this->getChar($temp));
}
elseif($version == 73)
{
$this->getChar($temp);
$array['name'] = $this->getString($temp);
$temp = substr($temp, 1);
$array['map'] = $this->getString($temp);
$temp = substr($temp, 1);
$this->getString($temp);
$temp = substr($temp, 1);
$this->getString($temp);
$temp = substr($temp, 3);
$array['players'] = ord($this->getChar($temp));
$array['max_players'] = ord($this->getChar($temp));
}
}
else $array['status'] = 'off';
}
return $array;
}
}