Advertisement
Guest User

W4PMon

a guest
Aug 4th, 2012
207
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.92 KB | None | 0 0
  1. <?php
  2. function json_decode_nice($json, $assoc = FALSE){
  3.     $json = str_replace(array("\n","\r"),"",$json);
  4.     $json = preg_replace('/([{,])(\s*)([^"]+?)\s*:/','$1"$3":',$json);
  5.     return json_decode($json,$assoc);
  6. }
  7.  
  8. //Сбор данных из GET запроса.
  9. $server = $_GET['server'];
  10. $address = $_GET['ip'];
  11. $port = $_GET['port'];
  12.  
  13. //Попытка подключения.
  14. $socket = @fsockopen($address, $port, $errno, $errstr, "2");
  15.  
  16. //Запись результатов в JSON файл, если подключение не удалось.
  17. if (!$socket) {
  18. $body = file_get_contents('/var/www/html/mon/'.$server.'.json');
  19. $body = substr($body, stripos($body, '{'), strlen($body));
  20. $test = json_decode_nice($body);
  21. $test->{$server}->{'status'} = "0";
  22. $test->{$server}->{'players'} = "0";
  23. $test->{$server}->{'players10'} = "0";
  24. $test->{$server}->{'maxplayers'} = "0";
  25. $f = fopen('/var/www/html/mon/'.$server.'.json', 'w');
  26. fputs($f, json_encode($test));
  27. fclose($f);
  28. exit();
  29. }
  30.  
  31. //Сбор данных, в случае удачного подключения.
  32. fwrite($socket, chr(254));
  33. $response = "";
  34. while(!feof($socket)) $response .= fgets($socket, 1024);
  35. $response = str_replace(chr(0),"",$response);
  36. $response = substr($response, 2);
  37. $query = preg_split("/[".chr(167)."]/", $response, -1, PREG_SPLIT_NO_EMPTY);
  38. $status = "1";
  39. $players = (int) $query[1];
  40. $maxplayers = (int) $query[2];
  41.  
  42. //Запись данных в JSON файл.
  43. $body = file_get_contents('/var/www/html/mon/'.$server.'.json');
  44. $body = substr($body, stripos($body, '{'), strlen($body));
  45. $test = json_decode_nice($body);
  46. $players10 = $players + 10;
  47. $test->{$server}->{'status'} = $status;
  48. $test->{$server}->{'players'} = $players;
  49. $test->{$server}->{'players10'} = $players10;
  50. $test->{$server}->{'maxplayers'} = $maxplayers;
  51. $f = fopen('/var/www/html/mon/'.$server.'.json', 'w');
  52. fputs($f, json_encode($test));
  53. fclose($f);
  54. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement