【问题标题】:Online Server Detection with multiple arrays具有多个阵列的在线服务器检测
【发布时间】:2019-10-21 14:15:54
【问题描述】:

嘿嘿,为我们的服务器集群整理了一个在线/离线检测页面。我已经设法让 fsockopen 部分与阵列一起工作,我现在要做的是将它们链接到第二个阵列以回显特定的服务器和端口。

这里对 PHP 非常陌生,所以请对我温柔一点!一直试图将两个数组合并在一起,但没有运气。很明显我做错了什么,就是想不通!

$server1 = 'x.x.x.x';
$port1 = [
11000,
11002,
11004,
];
$S1 = [
A1,
A2,
A3,
];

foreach ($port1 as $key => $port1) {
    $fp = @fsockopen($server1,$port1,$errno, $errstr);
    echo "Ping $server1:$port1 $S1 ==> ";
    if ($fp) {
   echo '<p style="color: green; text-align: left">
      "ONLINE"
      </p>';
} else{
   echo '<p style="color: red; text-align: left">
      $S1 OFFLINE
      </p>';

【问题讨论】:

  • 抱歉 - 不确定您的数组 $S1 出现在哪里?此外,由于数组值语法不正确(至少需要引号)。
  • 对不起,我错过了];在 $port1 结尾处,我正在剥离要在此处显示的代码,并意外删除了该代码。
  • $S1 数组用于指定在这些端口上运行的网格(服务器)。所以端口 11000 是网格 A1 等。我需要将 $port1 数组分开,以便在 fsockopen 命令中使用它,但在输出回显中我希望它显示“Ping xxxx:11000 A1”,下一个是“ Ping xxxx:11002 A2"等

标签: php loops foreach fsockopen


【解决方案1】:

如果数组 $port1$S1 彼此同步,那么您可以使用循环中的键 ($key) 从第二个数组中获取值...

echo "Ping $server1:$port1 ".$S1[$key]." ==> ";

【讨论】:

  • 这太简单了,简直不敢相信我错过了。这工作完美,刚刚测试。非常感谢!
猜你喜欢
  • 1970-01-01
  • 2016-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-27
  • 2015-12-28
  • 2017-09-07
  • 2016-12-06
相关资源
最近更新 更多