【问题标题】:Transfer data from PHP(client) to a Python script(server)将数据从 PHP(客户端)传输到 Python 脚本(服务器)
【发布时间】:2018-03-20 03:53:29
【问题描述】:

我将编写一个 python 脚本,它将 user_id 作为 PHP 的参数并对其执行一些操作。当它完成执行操作时,它会等待另一个 user_id。我想做的是:

  1. 将 $user_id 从 PHP 发送到 Python
  2. 在后台运行 script.py 作为守护进程,文件名来自 PHP。
  3. 在处理单个 user_id(可能是用户队列)时处理多个 user_id 输入

我无法将参数发送到已在后台运行的 python 脚本。

当用户单击 PHP 网站上的按钮时,一些数据会发送到 python 脚本并进行处理。 Python 脚本维护一个队列来管理来自多个用户的请求并逐个处理它们。脚本在后台运行,因此无需将值返回给 PHP 脚本。

如何实现此类功能?有什么想法吗?

我无法通过参数传递数据

 exec('python script.py args');

因为每次用户点击都会启动一个新进程,如果 1000 个用户同时点击,操作系统将无法处理进程。

我想以某种方式执行 PHP 脚本,然后能够实时向它传输数据。

【问题讨论】:

  • 你不能神奇地将 python 变成一个支持持续套接字连接的服务器。 python脚本编码方式的限制将是客户端(在这种情况下我想是服务器端PHP脚本?)可以做什么的限制。你说I cannot pass data through arguments using...。好吧,如果这是真的,您打算如何将数据获取到 python 脚本?
  • @gview 通过参数传递数据是从 PHP 向 Python 发送数据的唯一方法吗?
  • 不,不是,但重要的问题是python脚本可以接受什么?
  • 当用户点击 PHP 网站上的按钮时,他的 user_id 被发送到 python 脚本,在 web 服务器目录中对其执行一些操作后写入一个 user_id.txt 文件。 python 脚本需要来自 PHP 脚本的 user_id。
  • 我明白了,但是如果 python 脚本只接受这个 user_id 的输入作为命令行参数,那么 PHP 只能执行程序并传递参数。如您所述,这将分叉程序。

标签: php python python-3.x http


【解决方案1】:

您的问题有几个不同的答案,但它们都要求您添加到 Python 程序中,并将其从命令行程序转换为不同的东西。

我对您的建议是使用 Python v3 http.server 或 v2 中的 SimpleHTTPServer。

这将允许您的 PHP 程序通过 localhost:port# 使用 curl 扩展名或通过 Guzzle 将数据发送到 Python 脚本。

【讨论】:

  • 我从没说过 Python 程序是命令行程序,我还没写过代码。我需要如何编写 Python 程序以便它能够与 PHP(客户端)通信的答案。以及如何将数据从 PHP 发送到我的 python 程序?不过,感谢您的回答,我将尝试将 python 程序作为 http 服务器运行,并使用 POST 请求从 php(client) 向其发送数据。希望它有效。谢谢:)
  • 是的,它肯定会起作用。你的问题是:I have a python script。那样写,就是说明你已经有问题了。如果你说:“我将编写一个 Python 脚本......”祝你好运。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多