我正在尝试为我的游戏服务器创建服务器状态页面,但代码最终没有显示服务器是否在线。
<?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中给出布尔值
答案 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;。您还应该以其他方式重构代码,例如删除@
错误抑制。