2013-07-02 61 views
0

圖片:http://i40.tinypic.com/2hodx55.png界面B/W模塊

我已經使用PHP和SNMP內置網絡接口的顯示器,但現在,當我執行它在本地主機上我看到我的圖(0)一次又一次地去原點(請看到圖像),並且Y軸上的速度也是錯誤的。有時它以毫秒和百萬計。

請誰能告訴我什麼是我已經簡化程式碼中下部下面的代碼

<?php 
    $int="wlan0"; 


     session_start(); 

    $rx0 =snmpget('localhost','public','.1.3.6.1.2.1.2.2.1.10.3'); 

$tx0 =snmpget('localhost','public','.1.3.6.1.2.1.2.2.1.16.3'); 

    sleep(5); 

$rx1 =snmpget('localhost','public','.1.3.6.1.2.1.2.2.1.10.3'); 

$tx1 =snmpget('localhost','public','.1.3.6.1.2.1.2.2.1.16.3'); 


    $rx0 = substr($rx0, 11); 
    $tx0 = substr($tx0, 11); 
    $rx1 = substr($rx1, 11); 
    $tx1 = substr($tx1, 11); 

    $tBps = $tx1 - $tx0; 
    $rBps = $rx1 - $rx0; 

    $round_rx=$rBps; 
    $round_tx=$tBps; 



    $time=date("U")."000"; 


$_SESSION['rx'][] = "[$time, $round_rx]"; 
$_SESSION['tx'][] = "[$time, $round_tx]"; 
    $data['label'] = $int; 
    $data['data'] = $_SESSION['rx']; 

      if (count($_SESSION['rx'])>60) 
    { 
    $x = min(array_keys($_SESSION['rx'])); 
    unset($_SESSION['rx'][$x]); 

    } 




     echo '{"label":"'.$int.'","data":['.implode($_SESSION['rx'], ",").']}'; 


     ?> 
+0

您還沒有任何數據 - 我們如何知道它發生了什麼? – 2013-07-02 07:59:04

+0

但是在這一行'$ x = min(array_keys($ _ SESSION ['rx']));''$ x'將始終爲零,因爲您尚未爲此數組分配任何鍵。你的'echo'語句看起來像它應該生成JSON--這可能是通過創建一個合適的PHP associatuve數組並使用'json_encode()'來完成的。 – 2013-07-02 07:59:44

+0

@MikeW我很感謝你的回覆,我附上了一張圖片的鏈接,你可以在那裏看到O/P。那麼,我怎麼才能真正分配一個鍵和JSON不是真的工作,我怎麼能改變爲PHP? – user2538681

回答

0

在代碼中的問題。

  • 我假設$_SESSION['rx']被初始化爲某個數組。
  • $data已經不存在了 - 我希望它不會再用下去了。
  • $_SESSION['tx']已更新,但未使用,因爲它在您的代碼段中。

這應該爲rx生成乾淨的JSON輸出。我沒有看到零值來自你的版本或這裏。檢查輸入(來自snmpget()的原始值)和輸出的JSON字符串。

$_SESSION['rx'][] = array($time, $round_rx); 
$_SESSION['tx'][] = array($time, $round_tx); 

// retaining just the 60 most recent entries. 
if (count($_SESSION['rx'])>60) { 
    array_shift($_SESSION['rx']); 
} 

$rxdata = array("label"=>$int, "data"=>$_SESSION['rx']); 
echo json_encode($rxdata);