0
我有這個php類,我不知道如何使用它。我知道一點點的PHP,但我不知道如何使用/調用一個類。如何在php中使用類
<?php
Class Checkserver {
static function getString(&$packet){
$str = "";
$n = strlen($packet);
for($i=0;($packet[$i]!=chr(0)) && ($i < $n);++$i)
$str .= $packet[$i];
$packet = substr($packet, strlen($str));
return trim($str);
}
static function getChar(&$packet){
$char = $packet[0];
$packet = substr($packet, 1);
return $char;
}
function serverInfo($server) {
list($ip,$port) = explode(":", $server);
$fp = @fsockopen('udp://'.$ip, $port);
if($fp) {
stream_set_timeout($fp, 2);
fwrite($fp,"\xFF\xFF\xFF\xFFTSource Engine Query\0\r");
$temp = fread($fp, 4);
$status = socket_get_status($fp);
if($status['unread_bytes']>0) {
$temp = fread($fp, $status['unread_bytes']);
$version = ord(self::getChar($temp));
$array = array();
$array['status'] = "1";
if($version == 109) {
$array['ip'] = self::getString($temp);
$temp = substr($temp, 1);
$array['hostname'] = self::getString($temp);
$temp = substr($temp, 1);
$array['mapname'] = self::getString($temp);
$temp = substr($temp, 1);
self::getString($temp);
$temp = substr($temp, 1);
self::getString($temp);
$temp = substr($temp, 1);
$array['players'] = ord(self::getChar($temp));
$array['maxplayers'] = ord(self::getChar($temp));
} elseif($version == 73) {
self::getChar($temp);
$array['hostname'] = self::getString($temp);
$temp = substr($temp, 1);
$array['mapname'] = self::getString($temp);
$temp = substr($temp, 1);
self::getString($temp);
$temp = substr($temp, 1);
self::getString($temp);
$temp = substr($temp, 3);
$array['players'] = ord(self::getChar($temp));
$array['maxplayers'] = ord(self::getChar($temp));
}
} else {
$array['hostname'] = 'Server offline';
$array['mapname'] = '-';
$array['players'] = '0';
$array['maxplayers'] = '0';
$array['status'] = '0';
}
}
return $array;
}
}
?>
我曾嘗試在同一文件中寫這來查詢服務器,其中類是:
<?php
$newServer = serverInfo();
$date = $newServer->serverInfo("127.0.0.1:27015");
?>
但我無法得到它的工作。如何使用udp查詢服務器,並使用此類打印輸出?
當我這樣做時,我沒有得到任何輸出。任何想法爲什麼? – usersubuser
@usersubuser因爲該函數可能返回一個數組。你需要print_r($ date);查看數組中的響應或循環並回顯值 – Phil