note 104188 added to function.fsockopen

From: Date: Tue, 31 May 2011 07:50:58 +0000
Subject: note 104188 added to function.fsockopen
Groups: php.notes 
Request: Send a blank email to php-notes+get-180112@lists.php.net to get a copy of this message
For getting information of game server use: This uses Wolfenstein:Enemy Territory port. Example is here: http://genert.impact.pri.ee/ser/server.php?ip=188.165.209.117:29000 <? $ip = $_GET['ip']; $port = $_GET['port']; if (preg_match("/(.+):([0-9]*)/", $ip, $array)) { $ip = gethostbyname($array[1]); $port = $array[2]; } if (!isset($port) || $port == null) { $port = 27960; } $fp = fsockopen('udp://' . $ip, $port, $errno, $errstr); if (!$fp) { $status['connected'] = false; } else { fputs($fp, "˙˙˙˙getstatus\n"); socket_set_timeout($fp, 2); $serverstatus = fread($fp, 5000); fclose($fp); $serverstatus = split("\n", $serverstatus); $info['total'] = count($serverstatus); $info['start'] = ($info['total'] > 3 ? 4 : 3); for ($i = 0; $i < $info['start']; $i++) { if ($i == 0) { if ($serverstatus[0]) { $status['connected'] = true; } else { $status['connected'] = false; break; } } elseif ($i == 1) { $status['gameinfo'] = true; $gameinfo = split("[\\]", $serverstatus[1]); for ($j = 1; $j < count($gameinfo) - 1; $j++) { $k++; $ginfo[$k] = $gameinfo[$j++] . "\\" . $gameinfo[$j]; } foreach ($ginfo as $key => $data) { list($settings[$key]['cvar'], $settings[$key]['value']) = split("[\\]", $data, 2); } } elseif ($i == 2) { if ($info['total'] > 3) { $status['players'] = true; for ($l = 2; $l < ($info['total'] - 1); $l++) { $m++; list($players[$m]['score'], $players[$m]['ping'], $players[$m]['name']) = split(" ", $serverstatus[$l], 3); if (getValue("gamename") == "osp") { $players[$m]['name'] = fixOSPColors(substr($players[$m]['name'], 1, -1)); } else { $players[$m]['name'] = fixColors(substr($players[$m]['name'], 1, -1)); } } } else { $status['players'] = false; } if ($i == ($info['start'] - 1) && $info['start'] == 3) { $status['disconnected'] = true; } } elseif ($i == ($info['start'] - 1)) { $status['disconnected'] = true; } } } ?> ---- Server IP: 217.146.68.100 Probable Submitter: 90.191.146.97 ---- Manual Page -- http://www.php.net/manual/en/function.fsockopen.php Edit -- https://master.php.net/note/edit/104188 Del: integrated -- https://master.php.net/note/delete/104188/integrated Del: useless -- https://master.php.net/note/delete/104188/useless Del: bad code -- https://master.php.net/note/delete/104188/bad+code Del: spam -- https://master.php.net/note/delete/104188/spam Del: non-english -- https://master.php.net/note/delete/104188/non-english Del: in docs -- https://master.php.net/note/delete/104188/in+docs Del: other reasons-- https://master.php.net/note/delete/104188 Reject -- https://master.php.net/note/reject/104188 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#180112) next »