2013-07-02 2 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

Вы не разместили ни одной информации - как мы можем сказать, что с ней происходит? –

+0

Однако в этой строке '$ x = min (array_keys ($ _ SESSION ['rx']));' '$ x' всегда будет нулевым, так как вы не назначили никаких ключей для этого массива. Ваш оператор 'echo' выглядит так, как будто он должен генерировать JSON - это, вероятно, лучше сделать, создав подходящий массив ассоциаций PHP и используя' json_encode() '. –

+0

@MikeW Я ценю ваш ответ, я прикрепил ссылку на картинку, которую вы можете увидеть там O/p. Итак, как я могу назначить ключ, а JSON не работает, как я могу перейти на Php? – user2538681

ответ

0

я упростил код в нижней части вашего сниппета.

  • Я предполагаю, что $_SESSION['rx'] инициализируется массивом где-то.
  • $data ушел - надеюсь, что он не будет использоваться дальше.
  • $_SESSION['tx'] обновлен, но в остальном не используется, как это было в вашем фрагменте.

Это должно генерировать чистый выход JSON для rx. Я не вижу, откуда берутся нулевые значения в вашей версии или в этом. Проверьте оба входа на это (необработанные значения от 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); 
Смежные вопросы