4
全部使用, 我有一個使用fsockopen來偵測Minecraft服務器的腳本。我想知道是否有方法將其轉換爲使用cURL?PHP ping使用cURL的Minecraft服務器
下面是函數:
function pingserver($host, $port=25565, $timeout=30) {
//Set up our socket
$fp = fsockopen($host, $port, $errno, $errstr, $timeout);
if (!$fp) return false;
//Send 0xFE: Server list ping
fwrite($fp, "\xFE");
//Read as much data as we can (max packet size: 241 bytes)
$d = fread($fp, 256);
//Check we've got a 0xFF Disconnect
if ($d[0] != "\xFF") return false;
//Remove the packet ident (0xFF) and the short containing the length of the string
$d = substr($d, 3);
//Decode UCS-2 string
$d = mb_convert_encoding($d, 'auto', 'UCS-2');
//Split into array
$d = explode("\xA7", $d);
//Return an associative array of values
return array(
'motd' => $d[0],
'players' => intval($d[1]),
'max_players' => intval($d[2]));
}
看來,一個本地服務器,這就是爲什麼我想將它轉化成捲曲這樣我就可以在遠程服務器上運行上運行時,此功能只適用。
這適用於遠程服務器,我只是測試它。 – Jack 2012-04-07 21:11:04
嗯......我得到這個錯誤:'警告:fsockopen()[function.fsockopen]:無法連接到/home/user/public_html/mc.php中的xx.xx.xx.xx:25565(連接被拒絕)在線6' – 2012-04-08 03:19:36
聽起來像你要麼有某種防火牆,要麼更可能連接到一個不好的主機/端口。 – Jack 2012-04-09 20:12:27