Пособие или как считать данные с json
Добавлено: Вс мар 23, 2014 3:27 pm
Сначало устанавливаем программу Open Hardware Monitor.
Скачать можно везде и на русском тоже.
Запускаем программу и получаем монитор нашего компьютера , примерно такое (это мой монитор) Далее выбираем параметр который хотим вытянуть, допустим это скорость вентилятора
CPU Fan #2 Далее создаем скрипт с таким содержанием:
$ch = curl_init('http://192.168.1.35:8085/data.json');//здесь заменить IP на свой http://*:8085/data.json
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$ohm = curl_exec($ch);
$json = json_decode($ohm);
//----------------------- Вытягиваем данные
$Fan = $json -> {'Children'}[0] -> {'Children'}[0] -> {'Children'}[0] ->{'Children'}[2] -> {'Children'}[0] -> {'Value'};
$cpu_tip = $json -> {'Children'}[0] ->{'Children'}[1] -> {'Text'};
//----------------------- Просматриваем данные
echo "<br \>";
echo "скорость вентилятора";echo "  ";print_r("$Fan");
echo "<br \>";
echo "Тип процессора";echo "  ";print_r("$cpu_tip");
//----------------------- Присваеваем данные
setGlobal('serverFAN2.value', $Fan);
setGlobal('serverCPUtip.value', $cpu_tip);
Теперь обьясню как собираются выражения
$Fan = $json -> {'Children'}[0] ->{'Children'}[0] -> {'Children'}[0] ->{'Children'}[2] -> {'Children'}[0] -> {'Value'};
$cpu_tip = $json -> {'Children'}[0] ->{'Children'}[1] -> {'Text'};
Давайте разобьем эту строку на части
$Fan = - это название переменной которую мы создаем
$json -> - это входим в json
{'Children'}[0] -> - это входим в свой компьютер, смотри по фото монитора данных(у меня это в HOME-E78C34B9F1) Второй гилдрен
$Fan = $json -> {'Children'}[0] ->{'Children'}[0] - это входим в : В зависимости куда нужно зайти ту цифру и ставите после {'Children'}[ 0или1или2или3или4или5 ]
В нашем случае стоит 0 - значит входим в материнскую плату, а если допустим поставить 4 то попадем в винчестер (смотри по картинке моего монитора)
Теперь после этого выражения
$Fan = $json -> {'Children'}[0] ->{'Children'}[0] -> {'Children'}[0]
мы попадаем сюда в Winbond W83627EHF Дальше добавляем еще один {'Children'} и попадаем $Fan = $json -> {'Children'}[0] ->{'Children'}[0] -> {'Children'}[0] ->{'Children'}[2] сюда: здесь нам нужно поставить 2 , если хотим попасть в Fan
Дальше при добавлении попадаем в :
$Fan = $json -> {'Children'}[0] ->{'Children'}[0] -> {'Children'}[0] ->{'Children'}[2] -> {'Children'}[0] Далее дописываем переменную value или maх или min, в зависимости от необходимости Если нужно вытянуть название блока а не его переменную то пишем {'Text'};
Например пишем это $cpu_tip = $json -> {'Children'}[0] ->{'Children'}[1] -> {'Text'};
и получаем это Короче получилось так: Буду рад если кому поможет а то сам потерял день на это понимание.
Скачать можно везде и на русском тоже.
Запускаем программу и получаем монитор нашего компьютера , примерно такое (это мой монитор) Далее выбираем параметр который хотим вытянуть, допустим это скорость вентилятора
CPU Fan #2 Далее создаем скрипт с таким содержанием:
$ch = curl_init('http://192.168.1.35:8085/data.json');//здесь заменить IP на свой http://*:8085/data.json
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$ohm = curl_exec($ch);
$json = json_decode($ohm);
//----------------------- Вытягиваем данные
$Fan = $json -> {'Children'}[0] -> {'Children'}[0] -> {'Children'}[0] ->{'Children'}[2] -> {'Children'}[0] -> {'Value'};
$cpu_tip = $json -> {'Children'}[0] ->{'Children'}[1] -> {'Text'};
//----------------------- Просматриваем данные
echo "<br \>";
echo "скорость вентилятора";echo "  ";print_r("$Fan");
echo "<br \>";
echo "Тип процессора";echo "  ";print_r("$cpu_tip");
//----------------------- Присваеваем данные
setGlobal('serverFAN2.value', $Fan);
setGlobal('serverCPUtip.value', $cpu_tip);
Теперь обьясню как собираются выражения
$Fan = $json -> {'Children'}[0] ->{'Children'}[0] -> {'Children'}[0] ->{'Children'}[2] -> {'Children'}[0] -> {'Value'};
$cpu_tip = $json -> {'Children'}[0] ->{'Children'}[1] -> {'Text'};
Давайте разобьем эту строку на части
$Fan = - это название переменной которую мы создаем
$json -> - это входим в json
{'Children'}[0] -> - это входим в свой компьютер, смотри по фото монитора данных(у меня это в HOME-E78C34B9F1) Второй гилдрен
$Fan = $json -> {'Children'}[0] ->{'Children'}[0] - это входим в : В зависимости куда нужно зайти ту цифру и ставите после {'Children'}[ 0или1или2или3или4или5 ]
В нашем случае стоит 0 - значит входим в материнскую плату, а если допустим поставить 4 то попадем в винчестер (смотри по картинке моего монитора)
Теперь после этого выражения
$Fan = $json -> {'Children'}[0] ->{'Children'}[0] -> {'Children'}[0]
мы попадаем сюда в Winbond W83627EHF Дальше добавляем еще один {'Children'} и попадаем $Fan = $json -> {'Children'}[0] ->{'Children'}[0] -> {'Children'}[0] ->{'Children'}[2] сюда: здесь нам нужно поставить 2 , если хотим попасть в Fan
Дальше при добавлении попадаем в :
$Fan = $json -> {'Children'}[0] ->{'Children'}[0] -> {'Children'}[0] ->{'Children'}[2] -> {'Children'}[0] Далее дописываем переменную value или maх или min, в зависимости от необходимости Если нужно вытянуть название блока а не его переменную то пишем {'Text'};
Например пишем это $cpu_tip = $json -> {'Children'}[0] ->{'Children'}[1] -> {'Text'};
и получаем это Короче получилось так: Буду рад если кому поможет а то сам потерял день на это понимание.