2016-01-12 1 views
1

У меня есть питон скрипт, который возвращает 2 значения, влажности и температуры:вызов питон из PHP с 2 возвращения значения

Temperature: 1.58050537109 
Humidity: 89.2761230469 

Я называю это srcipt из PHP-страницы, но только одно значение распечатывается

<?php 
echo exec("sudo python /home/pi/sht/sht31.py 2>&1"); 
?> 

и печатается только одна влажность. Не могли бы вы помочь мне распечатать оба значения? Спасибо

+0

без Судо вы не можете прочитать I2C и использовал мой script ... – jimbolino

ответ

2

Если вы вызываете exec() только с командной строкой, тогда он вернет только последнюю строку вывода. Для того, чтобы захватить все называют его вторым параметром, чтобы получить все выходные данные:

exec('command', $output); 
var_dump($output); 
0

Теперь выход есть:

array(5) { [0]=> string(5) "False" [1]=> string(4) "True" [2]=> string(5) "False" [3]=> string(26) "Temperature: 1.56982421875" [4]=> string(23) "Humidity: 89.3859863281" } 

с этим кодом:

exec('sudo python /home/pi/sht/sht31.py' , $output); 
var_dump($output); 
+0

Обратите внимание, что если массив уже содержит некоторые элементы, exec() добавит его в конец массива. Если вы не хотите, чтобы функция добавляла элементы, вызовите функцию unset() в массиве, прежде чем передать ее в exec(). –

Смежные вопросы