Для начала разберем структуру кода:
<link media="screen" href="/monitor/monitor.css" type="text/css" rel="stylesheet" />
<?php $host = "IP-адресс Вашего сервера";$port = "Порт Вашего сервера";
$socket = @fsockopen($host, $port);if ($socket !== false) {@fwrite($socket, "\xFE");$data = "";$data = @fread($socket, 256);@fclose($socket); if ($data == false or
substr($data, 0, 1) != "\xFF") return;{ $info= substr( $data, 3 );$info = iconv( 'UTF-16BE', 'UTF-8', $info );if( $info[ 1 ] === "\xA7" && $info[ 2 ] === "\x31" ) {$info = explode( "\x00", $info );$playersOnline=IntVal( $info[4] );$playersMax = IntVal( $info[5] );} else {$info = Explode( "\xA7", $info );$playersOnline=IntVal( $info[1] );$playersMax = IntVal( $info[2] );}//Вывод мониторингаecho "<div id=server1 style=background:url(/monitor/img/server1.jpg) no-repeat;><div id=online1>",$playersOnline,"</div><div id=progress><div id=progress-value style=width:",$playersOnline,"%></div></div></div>"; }} else {//Вывод "сервер не доступен"echo "<div id=\"server1\" style=\"background:url(/monitor/img/server1-err.jpg) no-repeat; width: 200px; height: 85px;\"";}?>
В самом вверху мы видим строку:
HTML:
<link media="screen" href="/monitor/monitor.css" type="text/css" rel="stylesheet" /> Как многие уже знают, это ссылка на подключения CSS стилей к
данному скрипту, следовательно в файле "monitor.css" лежат все наши
стили которые мы можем спокойно менять)
Далее у нас идет сам PHP-код
1й Этап это идет подключение к вашему серверу и "вытягивание" из него информации (об этом я расскажу позже)
Приступим к тому что мы можем "покрутить" =)
а именно:
PHP:
echo "<div id=server1 style=background:url(/monitor/img/server1.jpg) no-repeat;>
<div id=online1>",$playersOnline,"</div>
<div id=progress><div id=progress-value style=width:",$playersOnline,"%></div></div></div>";}}
И так..Это непосредственно сам вывод мониторинга. Мы в первой
строке можем увидеть ссылку на картинку, эта именно та картинка которая
будет нести в себе название сервера и т.д.(с такой же картинкой можно
встретиться в следующей части кода)
Далее мы видим "$playersOnline" - эта переменная выводит кол-во игроков онлайн
Для того что бы отображался прогрессбар я использовал стандартную
возможность менять ширину от кол-ва человек онлайн. Тут есть одна
тонкость, если у Вас на сервере можно вместить 100 человек то вопросов
никаких не возникнет, но в моем случае это всего-лишь 40 человек. И тут
вопрос как сделать так что бы на это кол-во человек отображался
"правильно" и я отредактировал код таки образом:
PHP:
echo "<div id=server1 style=background:url(/monitor/img/server1.jpg) no-repeat;>
<div id=online1>",$playersOnline,"</div>
<div id=progress><div id=progress-value style=width:",round(2.5*$playersOnline),"%></div></div></div>";}}
У кого меньшое кол-во слотов на сервере данная идея будет понятна.
То есть если у вас 60 человек то будет примерно: round(1.7*$playersOnline)
80 - round(1.5*$playersOnline)
и т.д. в том же духе. (не факт что формула правильна, но суть ясна)
Далее код:
PHP:
- //Вывод "сервер не доступен"
echo "<div id=\"server1\" style=\"background:url(/monitor/img/server1-err.jpg) no-repeat; width: 200px; height: 85px;\"";}
Он полностью аналогичен коду выше с выводом картинки с вашим сервером, только запись на нем будет "Сервер временно не доступен"
В принципе на этом наша гибкая настройка закончена.
Суть данной документации была в том, что когда я начинал свое изучение,
мне было довольно-таки тяжело разобраться в этом. По этому респект
новичкам и мой личный совет, практикуйтесь больше! Учитесь на
собственных ошибках и используйте метод ТЫКа, он во всех ситуациях
уместный)