如何在PHP中运行Python脚本并获取值

时间:2018-03-15 17:28:13

标签: php python variables

我想从PHP脚本运行{ "temperature": 21, "pressure":962 } 脚本,以便它可以获取值并将其写出来。

例如:

import smbus
import time
import sys

bus = smbus.SMBus(1) 
i=0

for i in range(1): # pętla
    bus.write_byte_data(0x5d, 0x20, 0b10000000)
    bus.write_byte_data(0x5d, 0x21, 0b1) 
    Temp_LSB = bus.read_byte_data(0x5d, 0x2b)
    Temp_MSB = bus.read_byte_data(0x5d, 0x2c)

    count = (Temp_MSB << 8) + Temp_LSB 
    if (count >= 0x8000):              
        count1 = -((65535-count) + 1)
    else:
        count1 = count

    temperature = 42.5 + (count1/480.0)
    print"temperature = ",temperature
    ph=bus.read_byte_data(0x5d, 0x2a)
    pl = bus.read_byte_data(0x5d, 0x29)
    pxl=bus.read_byte_data(0x5d, 0x28)
    #print'PressOut_XL = ',pxl
    pressure=float((((ph<<8)+pl)<<8)+pxl)
    print "pressure = ",pressure
    time.sleep(0.5)

这是我的Python脚本,我想得到这两个变量(温度,压力):

<?php

$result = exec('python /home/pi/test/test.py', $output, $retval);
var_dump($output);
var_dump($retval);

?>

这是我的php脚本:

{{1}}

任何想法如何做到这一点?

1 个答案:

答案 0 :(得分:0)

您的.py脚本中可能会出现错误。在这种情况下,您希望将STDERR重定向到STDOUT

尝试以下脚本:

exec('python /home/pi/test/test.py 2>&1', $output, $retval);