【发布时间】:2020-04-26 05:55:37
【问题描述】:
下午好,我是 php 新手,所以在这里我需要一些帮助。此代码在 php 5.6 中工作,服务器状态可读并且在线,但是当我使用 php 7.4 时服务器状态变为离线但实际上服务器在线。谁能帮我? php 7.4 需要更改代码吗?谁能帮我改一下?
<?php
$file = file ("http://xxx/ServerDisplay.ini");
foreach($file as $line)
{
if(strspn($line, "[") != 1)
parse_str($line);
}
function statuscheck ($ serverip, $ port) {
$ Sockres = @ fsockopen ($ serverip, $ port, $ errno, $ errstr, 1);
if (! $ sockres) {
return " <font color='red'><b>Off-Line</b></font>";
} else {
@fclose($sockres);
return " <font color='green'><b>On-Line</b></font>";
}
}
//Вывод на экран статус сервера и онлайн рас
$serverip = "xxxxxxx";
echo "<b><font size=2 color=#ffffff>";
echo "<div> ";
echo "Login: " . statuscheck($serverip, "10001");
echo "</div> ";
echo "<div> ";
echo "Zone:" . statuscheck($serverip, "27780");
echo "</div> ";
$serverip = "xxxxxxxx";
echo "Total Online : $UserNum";
?>
*我已经审查了我的服务器 IP
【问题讨论】:
-
避免在 $ 和关键字 ($ serverip, $ port) 之间保留空格。删除空格,然后重试。
-
开启error_reporting,从你的代码中删除error suppression并检查你得到的错误
-
@Karthick 实际上没有空间 $serverip 空间是在我在这里复制粘贴期间发生的,我的问题是代码在 php 5.6 中工作(服务器状态在线)我不知道为什么它没有在 php 7.4 中工作(状态变为离线)
-
@kerbholz 我的问题是代码在 php 5.6 中工作(服务器状态在线)我不知道为什么它在 php 7.4 中不起作用(状态变为离线)
-
@wack 我在 PHP 7.4.0/Apache 2.4.1 上尝试了相同的脚本,其 IP 为 localhost - 127.0.0.1 用于端口 80/443,它运行良好并显示在线状态。首先,从源 PC/服务器远程登录到提到的服务器,并确保端口正在侦听并打开到目标。远程登录 $serverip 10001
标签: php