我尝试使用$ GET创建一个简单的页面来获取IP和端口
示例index.php?ip = 193.192.58.12& port = 27016
我的代码出现服务器错误
if (isset($_GET['ip']) && $_GET["port"]) {
$ip = $_GET["ip"];
$queryport = $_GET["port"];
$ip = '';
$queryport = ;
$socket = @fsockopen("udp://".$ip, $queryport , $errno, $errstr, 1);
stream_set_timeout($socket, 1);
stream_set_blocking($socket, TRUE);
fwrite($socket, "\xFF\xFF\xFF\xFF\x54Source Engine Query\x00");
$response = fread($socket, 4096);
@fclose($socket);
$packet = explode("\x00", substr($response, 6), 5);
$server = array();
$server['name'] = $packet[0];
$inner = $packet[4];
$server['players'] = ord(substr($inner, 2, 1));
$server['playersmax'] = ord(substr($inner, 3, 1));
var_dump (json_encode( $server ));
} else {
echo "Serveri nuk ekziston";
}
答案 0 :(得分:0)
以下代码通过覆盖/删除您从$_GET
抓取的值导致问题:
$ip = $_GET["ip"];
$queryport = $_GET["port"];
$ip = '';
$queryport = ; // <<-- syntax error
删除$ip = '';
和$queryport = ;
并重新测试。
同时从@
移除@fsockopen
,以便您可以看到它何时中断。
答案 1 :(得分:0)
$data['status'] = 1;
// Explode extra flags from packet part //
$extras = explode("\x00", substr($packet[4], 25)); error?
$extras = explode(",", $extras[0]);//
$data['flags'] = "";
foreach($extras as $flag)