【问题标题】:Passing numeric variable from PHP to Python将数字变量从 PHP 传递到 Python
【发布时间】:2018-04-24 01:32:46
【问题描述】:

我已经设置了一个简单的网页,该网页根据按下的按钮打开 LED 特定持续时间。每个按钮当前调用不同的 python 文件,但除了几个变量之外,脚本都是相同的。我想将一个变量从 PHP 传递到 Python3,它告诉单个脚本打开哪个灯以及打开多长时间。我看到的所有传递变量的 YouTube 视频都与网页有关,而不是机器人技术。我可以让 PHP 传递一个单词并打印该单词,但是当我尝试将一个整数传递给 Python 时,它每次都会卡住。

以下内容应将连接到 GPIO 7 的 LED 点亮 5 秒,但没有任何反应。如果我将 Pin 保留为数字并且仅将持续时间作为变量,那么它会亮起,但永远不会熄灭,所以我知道它正在运行脚本。

如何让 Python 将变量视为数学数字而不仅仅是单词或字符?谢谢。

PHP 代码:

if(isset($_GET['test2']))
{
exec("sudo python /var/www/html/paramtest.py '7' '5'");
echo "test button 2";
}

Python 代码:

import sys
from time import sleep
import RPi.GPIO as GPIO

GPIO.setmode(GPIO.BOARD)
GPIO.setup(7, GPIO.OUT)
GPIO.setup(11, GPIO.OUT)
GPIO.setup(13, GPIO.OUT)

x = sys.argv[1]
y = sys.argv[2]

GPIO.output(x, True)
sleep(y)
GPIO.output(x, False)
GPIO.cleanup()
print "done"

【问题讨论】:

    标签: php python variables integer


    【解决方案1】:

    假设我没有误解这个问题,您只需要将包含您的号码的字符串显式转换为 int

    为此,您可以像这样简单地使用int()

    x = int(x) 
    

    如果需要,您还可以将输入字符串所在的基数指定为第二个参数,如下所示:

    y = int(y,10)
    

    如果 y 是一个包含以 10 为底的数字的字符串。

    如果您需要有关此方法或其他方法的更多详细信息,也可以参考Python 3 docs

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-22
      • 2012-10-07
      • 1970-01-01
      相关资源
      最近更新 更多