PHP服务器状态代码错误

时间:2017-05-03 20:07:42

标签: php

我正在尝试为我的游戏服务器创建服务器状态页面,但代码最终没有显示服务器是否在线。

<?PHP 
$ts_ip = "177.82.148.141"; 
$ts_port = "2505"; 

$output = @fsockopen("$ts_ip", $ts_port, $errno, $errstr, 2);  
stream_set_timeout($output, 00002);

if (!$output) { 
    echo "<FONT COLOR=#DD0000><B>FEB Offline</B></FONT>"; 
} else { 
    echo "<FONT COLOR=#00DD00><B>FEB Online</B></FONT>"; 
} 
@fclose($output); 
?>

它也给了我这个错误:

  

警告:stream_set_timeout()期望参数1为资源,第6行/home/u918484727/public_html/teste.php中给出布尔值

是的,有人能帮帮我吗?

2 个答案:

答案 0 :(得分:0)

“$ ts_ip”不应该“围绕它们?”

答案 1 :(得分:-1)

可能有更好的方法来解决这个问题,但这会让它发挥作用。

$ts_ip = "177.82.148.141"; 
$ts_port = "2505"; 

$output = @fsockopen($ts_ip, $ts_port, $errno, $errstr, 2); 

if (!$output) { 
    echo "<FONT COLOR=#DD0000><B>FEB Offline</B></FONT>"; 
} else { 
    echo "<FONT COLOR=#00DD00><B>FEB Online</B></FONT>";  
    stream_set_timeout($output, 00002);
    @fclose($output); 
} 

我将$output逻辑放在else中,这样当你的代码返回false时,你的代码就不会尝试将它用作资源。

此外,虽然它不是导致问题的原因,但正如supajason指出的那样,你应该使用$ ts_ip而不是&#34; $ ts_ip&#34;。您还应该以其他方式重构代码,例如删除@错误抑制。