【问题标题】:Access php variables in python在python中访问php变量
【发布时间】:2018-05-05 03:45:49
【问题描述】:

我有一个运行程序的 apache 服务器,它有几个变量的实时更新。我需要访问它们来操作我的 python 程序中的数据。我该怎么做?。

我通过使用shell命令直接使用php文件来执行直接python命令。但是现在自从我升级后,我需要用变量替换它,我想使用 php 文件提供的数据在 main.py 中来操作接收到的数据的结果。

例如:

PHP 文件:

<?php
$a = 200;
?>

Python 文件:

b=40000  
c=a+b // the value of c should be imported from the php file  
print c  

现在我如何从 php 中导入 'a' 的值

【问题讨论】:

  • 你应该改进这个问题,否则它太难回答了。所以有一个从 apache 运行的 PHP 程序,当一个请求进来时,有一些变量会被更新?它是否以某种方式在请求之间持续存在?如果是这样,那是怎么做的?通常,您必须将数据写入后端数据库或其他类型的存储,以便您可以从另一个进程获取它。或者可能使用某种 IPC,例如命名管道,但这种情况不太常见。
  • 那应该是什么类型的python文件?
  • @jambox 切换按钮时,php 文件会不断获取数据,即 1 表示打开,0 表示关闭。变量的这个 1 和 0 不断更新无限时间。我想要 main.py 中的变量值,它使用该值通过传入一些条件子句来获得结果。此结果将用于打开或关闭树莓派的 GPIO。
  • @mrCarnivore 这个python文件用来驱动树莓派的GPIO管脚
  • 那么python程序会作为守护进程运行吗?如果是这样,您可能只需将值放入文件中,然后让 python 守护程序每秒或其他任何时间检查内容。这很 hacky,但它会工作。

标签: php python raspberry-pi raspberry-pi3


【解决方案1】:

如果没有更多细节,很难说最佳答案是什么,但这里有一些选项:

选项 1: 忘记python,用php做你的逻辑

选项 2: 使用 shell_exec 从 php 执行你的 python 并将你的变量作为参数传递,如下所示:

<?php
$a = 200;
shell_exec("example.py $a");
?>

更新:

如果您对 python 程序所做的只是切换 GPIO,请跳过 python 并使用“gpio”工具http://wiringpi.com/the-gpio-utility/

【讨论】:

  • 这个命令会更新我的python文件中变量a的值吗?
  • 这取决于“example.py”中的内容。除非您使用某种结构化交换,否则您不能在 php 和 python 之间共享变量。 IPC 是在对您的问题的评论中提出的,但通常 IPC 用于同一程序的不同线程之间。在您的情况下,IPC 不太可能是可行的。使用数据库、API 或消息队列之类的东西可能会更好。
  • 你建议什么样的数据库。有 14 个变量需要不断更新。哪个数据库实际上可以同时用于 python 和 php 。
  • 人们使用 redis 或 memcached 作为服务之间共享数据的一种方式,但有些人会说“db 不应该是 IPC”。
  • 其中任何一个都可以用于 python 和 php afaik。如果它们不断地更新,则最好使用消息队列或 memcached 之类的东西。这真的完全取决于你想要做什么以及你能承受多少开销。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-16
  • 2014-11-20
相关资源
最近更新 更多