字符串内的PHP代码

时间:2013-12-21 16:28:18

标签: php string

如果服务器处于联机或离线状态,我正试图解决问题,但是我的状态是错误的($ 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> &bull; <a href='add_server.php?deleteid=$id'>delete</a>$status<br />
    }
} else {
    $product_list = "You don't have any servers!";
}



?>

2 个答案:

答案 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");";