如果服务器处于联机或离线状态,我正试图解决问题,但是我的状态是错误的($ status =“function getStatus ...)但是我不知道出了什么问题。任何想法?
<?php
// This block grabs the whole list for viewing
$product_list = "";
$sql = mysql_query("SELECT * FROM servers ORDER BY ID DESC");
$productCount = mysql_num_rows($sql); // count the output amount
if ($productCount > 0) {
while($row = mysql_fetch_array($sql)){
$id = $row["id"];
$name = $row["name"];
$ip = $row["ip"];
$port = $row["port"];
$status =" function getStatus($ip,$port){
$socket = @fsockopen($ip, $port, $errorNo, $errorStr, 3);
if(!$socket) return "<FONT COLOR=red>offline</font>";
else return "<FONT COLOR=limegreen>online</font>";
}
//echo "$ip $port $errorNo $errorStr";
echo getStatus("$ipi", "$porti");";
$product_list .= "ID: $id - <strong>$name</strong> - <a href='edit_server.php?pid=$id'>edit</a> • <a href='add_server.php?deleteid=$id'>delete</a>$status<br />
}
} else {
$product_list = "You don't have any servers!";
}
?>
答案 0 :(得分:0)
此getStatus函数不会被执行。
您需要从字符串中定义它,然后调用它来获取信息。
function getStatus($ip, $port)
{
//Whatever you need to be run.
}
然后:
$status = getStatus("1.1.1.1", 80);
答案 1 :(得分:0)
基本上,行
$status =" function getStatus($ip,$port){
$socket = @fsockopen($ip, $port, $errorNo, $errorStr, 3);
if(!$socket) return "<FONT COLOR=red>offline</font>";
else return "<FONT COLOR=limegreen>online</font>";
只不过是使用以$status
开头的字符串自动初始化的变量" function ...
。这显然不会被解释为任何代码,因此您可能希望不定义函数getStatus
。
不幸的是,在分配中也存在语法错误,因此php永远不会被编译,你不会得到那么远。翻译将在) return "<FONT
投诉,因为字符串结束,a;预期但是&lt;以下是错误的语法。
你的意思是:
$port = $row["port"];
function getStatus($ip,$port){
$socket = @fsockopen($ip, $port, $errorNo, $errorStr, 3);
if(!$socket) return "<FONT COLOR=red>offline</font>";
else return "<FONT COLOR=limegreen>online</font>";
}
//echo "$ip $port $errorNo $errorStr";
echo getStatus("$ipi", "$porti");";