将PHP var传递给Python脚本

问题描述:

我试图从PHP传递一个var到我的python脚本,但它似乎不工作,我看过不同的论坛帖子,似乎无法让它工作,我哪里错了? 在Python脚本var是第一睡眠将PHP var传递给Python脚本

这里是我的PHP脚本:

$var1 = $_GET['speed']; 
$command = escapeshellcmd('python /var/www/html/blink.py $var1'); 
$output = shell_exec($command); 
echo $output; 

这里是我的Python脚本:

import RPi.GPIO as GPIO 
from time import sleep 
import shlex 
from subprocess import call 
import sys 

while (True): 

    # Turn all relays ON 
    call(shlex.split('gpio mode 1 out')) 
    call(shlex.split('gpio write 1 0')) 

    # Sleep for 5 seconds 
    sleep(sys.argv[1]) 
    # Turn all relays OFF 
    call(shlex.split('gpio write 1 1')) 

    # Sleep for 5 seconds 
    sleep(2) 
+0

'sys.argv中[1]'是一个字符串,你需要将其转换成一个数字。调用:'sleep(int(sys.argv [1]))',并进行错误检查。 – SuperSaiyan

+0

你可以添加一个简单的'print(sys.argv)'到python脚本并告诉我们它输出了什么? – Marco

我最后一次检查,单引号不要不扩展变量。除非您尝试将文字字符串$var1发送到您的python脚本,否则您需要更改$command = escapeshellcmd('python /var/www/html/blink.py $var1');以展开该变量。

一种方法是$command = escapeshellcmd('python /var/www/html/blink.py ' . $var1);

+0

编辑你的答案,明确表明什么是修复是请。 – ishegg

+1

编辑显示修复程序。 – user176717

+0

不幸的是,这并没有工作,我怕,它仍然发布到python脚本,但不通过变量通过 – SARUAV