Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- function json_decode_nice($json, $assoc = FALSE){
- $json = str_replace(array("\n","\r"),"",$json);
- $json = preg_replace('/([{,])(\s*)([^"]+?)\s*:/','$1"$3":',$json);
- return json_decode($json,$assoc);
- }
- //Сбор данных из GET запроса.
- $server = $_GET['server'];
- $address = $_GET['ip'];
- $port = $_GET['port'];
- //Попытка подключения.
- $socket = @fsockopen($address, $port, $errno, $errstr, "2");
- //Запись результатов в JSON файл, если подключение не удалось.
- if (!$socket) {
- $body = file_get_contents('/var/www/html/mon/'.$server.'.json');
- $body = substr($body, stripos($body, '{'), strlen($body));
- $test = json_decode_nice($body);
- $test->{$server}->{'status'} = "0";
- $test->{$server}->{'players'} = "0";
- $test->{$server}->{'players10'} = "0";
- $test->{$server}->{'maxplayers'} = "0";
- $f = fopen('/var/www/html/mon/'.$server.'.json', 'w');
- fputs($f, json_encode($test));
- fclose($f);
- exit();
- }
- //Сбор данных, в случае удачного подключения.
- fwrite($socket, chr(254));
- $response = "";
- while(!feof($socket)) $response .= fgets($socket, 1024);
- $response = str_replace(chr(0),"",$response);
- $response = substr($response, 2);
- $query = preg_split("/[".chr(167)."]/", $response, -1, PREG_SPLIT_NO_EMPTY);
- $status = "1";
- $players = (int) $query[1];
- $maxplayers = (int) $query[2];
- //Запись данных в JSON файл.
- $body = file_get_contents('/var/www/html/mon/'.$server.'.json');
- $body = substr($body, stripos($body, '{'), strlen($body));
- $test = json_decode_nice($body);
- $players10 = $players + 10;
- $test->{$server}->{'status'} = $status;
- $test->{$server}->{'players'} = $players;
- $test->{$server}->{'players10'} = $players10;
- $test->{$server}->{'maxplayers'} = $maxplayers;
- $f = fopen('/var/www/html/mon/'.$server.'.json', 'w');
- fputs($f, json_encode($test));
- fclose($f);
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement