我目前正在使用此 php 代码检查服务器(在本例中为 192.168.1.135)是否在线:
<?php
$fp = fsockopen("192.168.1.135", 443, $errno, $errstr, 0.4); //(line 47)
if (!$fp) {
echo "OFFLINE";
}
else{
echo "ONLINE";
}
?>
我在自己的服务器 192.168.1.130 上使用 XAMPP(当然在 LAN 上)有这段代码
因此,如果此服务器离线,输出将是:
Warning: fsockopen(): in C:\xampp\htdocs\index.php on line 47
OFFLINE
它应该只是“离线”。如何在没有警告的情况下只显示离线?
我认为 XAMPP 会在服务器关闭时向我发送警告。但是我应该怎么做才能不显示警告呢?我在 XAMPP 中找不到此设置,有人知道吗?
如果不是,即使服务器关闭(离线),我应该如何纠正第 47 行?
当服务器在线时,这将完美地工作。
最佳答案
使用 silence operator @
抑制警告:
$fp = @fsockopen("192.168.1.135", 443, $errno, $errstr, 0.4); //(line 47)
旁注:如您所见,@
运算符按您的要求抑制了警告。不过要小心。诸如“没有到主机的路由”之类的消息也将被抑制。 (主要是如果您的 网络连接不可用)所以您不能确定服务器是否离线。如果 fsockopen()
看不到原因,你应该额外输出 $errmsg
。
关于PHP - 检查服务器是否离线并且不在 XAMPP 中显示警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15733262/