将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)
我最后一次检查,单引号不要不扩展变量。除非您尝试将文字字符串$var1
发送到您的python脚本,否则您需要更改$command = escapeshellcmd('python /var/www/html/blink.py $var1');
以展开该变量。
一种方法是$command = escapeshellcmd('python /var/www/html/blink.py ' . $var1);
编辑你的答案,明确表明什么是修复是请。 – ishegg
编辑显示修复程序。 – user176717
不幸的是,这并没有工作,我怕,它仍然发布到python脚本,但不通过变量通过 – SARUAV
'sys.argv中[1]'是一个字符串,你需要将其转换成一个数字。调用:'sleep(int(sys.argv [1]))',并进行错误检查。 – SuperSaiyan
你可以添加一个简单的'print(sys.argv)'到python脚本并告诉我们它输出了什么? – Marco