<?php
error_reporting(E_ALL);
define ("SERVLIST", "servers.txt"); //файл со списком server:port
//------------------------------+
function GetServerInfo($server,$port)
{
$fp = @fsockopen("udp://".$server, $port);
if (!$fp) return false;
@fwrite($fp,"\xFF\xFF\xFF\xFF\x54\x53\x6F\x75\x72\x63\x65\x20\x45\x6E\x67\x69\x6E\x65\x20\x51\x75\x65\x72\x79\x00".chr(10));
$start=time();
socket_set_timeout($fp,1);
$st=fread($fp,1);
$r=socket_get_status($fp);
$r=$r["unread_bytes"];
if ($r == 0)
{
@fclose($fp);
return false;
}
$st.=fread($fp,$r);
@fclose($fp);
$st=substr($st,5);
$address=SubStr($st,0,StrPos($st,chr(0)));
$address=str_replace(chr(0),"|",$address);
$st=SubStr($st,StrPos($st,chr(0))+1);
$name=SubStr($st,0,StrPos($st,chr(0)));
$st=SubStr($st,StrPos($st,chr(0))+1);
$map=SubStr($st,0,StrPos($st,chr(0)));
$st=SubStr($st,StrPos($st,chr(0))+1);
$st=SubStr($st,StrPos($st,chr(0))+1);
$st=SubStr($st,StrPos($st,chr(0))+1);
$current=ord(SubStr($st,0,1));
$max=ord(SubStr($st,1,1));
if ($map == "") return false;
$result['map'] = $map;
$result['name']= $name;
$result['current'] = $current;
$result['max'] = $max;
return $result;
}
//--------------------------------+
function ReadServers($servlist)
{
$file = @fopen($servlist,"rt");
if ($file) {
$lines = explode("\n", fread($file, filesize($servlist)));
foreach ($lines as $v) {
$elem = explode(":",$v);
$srv['ip'] = $elem[0];
$srv['port'] = $elem[1];
if (GetServerInfo($srv['ip'],$srv['port'])) $servers[] = $srv;
}
fclose($file);
return $servers;
} else return false;
}
//------------------------------+
$servers = array();
$servers = ReadServers(SERVLIST);
//------------------------------+
foreach ($servers as $k=>$v)
{
$serv = GetServerInfo($v['ip'],$v['port']);
if ($serv)
echo " <font color='blue'>
<table border='0' width='100%'>
<tr bgcolor='#e4eaf2'>
<td width='45%'><div align='center'>IP</div></td>
<td width='10%'><div align='center'>:</div></td>
<td width='45%'><div align='center'>".$v['ip'].":".$v['port']."</div></td>
</tr>
<tr bgcolor='#f4f7fa'>
<td width='45%'><div align='center'>Игра</div></td>
<td width='10%'><div align='center'>:</div></td>
<td width='45%'><div align='center'>".$serv['name']."</div></td>
</tr>
<tr bgcolor='#e4eaf2'>
<td width='45%'><div align='center'>Карта</div></td>
<td width='10%'><div align='center'>:</div></td>
<td width='45%'><div align='center'>".$serv['map']."</div></td>
</tr>
<tr bgcolor='#f4f7fa'>
<td width='45%'><div align='center'>Игроки</div></td>
<td width='10%'><div align='center'>:</div></td>
<td width='45%'><div align='center'>".$serv['current']."/".$serv['max']."</div></td>
</tr>
</table>
</font>";
}
else
echo "Не работает !";
?>
Помогите с PHP-скриптом.
Помогите что тут надо дописать? Проблема вся в том что когда Игровой сервер не работает скрипт не может найти данные и php выдает ошибку ...on line 99. Заранее спасибо. :Bravo:
-
- VIP
- Сообщения: 1821
- Зарегистрирован: 12.05.2008
- Благодарил (а): 1 раз
- Поблагодарили: 8 раз
- Контактная информация:
<td width='45%'><div align='center'>".$serv['current']."/".$serv['max']."</div></td>
попробуй заменить на
<td width='45%'><div align='center'>".$serv['current']."\".$serv['max']."</div></td>
попробуй заменить на
<td width='45%'><div align='center'>".$serv['current']."\".$serv['max']."</div></td>