【问题标题】:Run (remote) php script from (local) python script从(本地)python脚本运行(远程)php脚本
【发布时间】:2009-07-09 13:58:59
【问题描述】:

如何让 python(本地)在远程服务器上运行 php 脚本

我不想用 python 脚本或任何东西处理它的输出,只需执行它并同时退出 python(而 php 脚本已经在工作并完成它的工作)。

编辑: 我想要达到的目标:

  • python脚本连接ftp服务器并上传php脚本(这部分代码我已经有了)
  • 它运行 php 脚本(这是我要询问的代码的一部分)
  • python 脚本继续做其他事情
  • python 脚本退出(但可能 php 脚本还没有完成它的工作,所以我不希望它在退出 python 时结束)
  • python 脚本退出,php 脚本仍在继续其任务

(我打算在python中对php输出做任何事情——python只需要上传php脚本并让它开始工作)

希望我现在更清楚了。抱歉,如果我的问题不够具体。

另一个编辑: 另请注意,我在远程服务器上没有 shell 访问权限。我只有ftp和控制面板(cpanel);尝试使用 ftp。

【问题讨论】:

  • 我不想包含它并使用它的输出,我想做相当于用户在浏览器中输入 php 脚本地址时发生的事情
  • @Phil,请更新您的问题以更全面地解释这一点。评论几乎没有意义。 Python 不是浏览器,不会像浏览器那样呈现 HTML。请提供一些更详细的说明来说明您想要发生的事情。
  • 好的,我编辑了它。我不想渲染任何东西。我不确定我是否正确地解决了问题,但我写了我想要发生的事情的清单 - 如果我能以不同的方式实现它,请随时发表评论。
  • @Phil:“它运行 php 脚本(这是我要询问的代码的一部分)”您希望本地机器上的 Python 在远程服务器上运行一些脚本吗?你问的是这个吗?
  • 是的,完全正确(hmmmmmmmmmm 15 个字符)

标签: php python


【解决方案1】:
os.system("php yourscript.php")

另一种选择是:

# will return new process' id
os.spawnl(os.P_NOWAIT, "php yourscript.php")

您可以查看所有 os 模块文档here

【讨论】:

  • 好的,如果我在 php 脚本仍在运行时退出 python,这会杀死我的 php 脚本吗?
  • 当正确答案是“是”时,为什么我需要输入 15 个字符? :-) 所以:是的,它会的。
  • 好的...查看我的问题编辑 - 我正在寻找可以让 php 脚本继续其任务的东西,即使 python 已经完成
  • 是否可以将值从 python 文件发送到 php 文件
【解决方案2】:

如果 python 与 PHP 脚本位于不同的物理机器上,我会确保 PHP 脚本可通过网络访问并使用 urllib2 调用该 URL

import urllib2

urllib2.urlopen("http://remotehost.com/myscript.php")

【讨论】:

  • 终于有一些有用的了!必须检查它是否有效,但如果有效,这正是我想要做的。谢谢。
【解决方案3】:

我将解释How do I include a PHP script in Python?的答案。

import subprocess

def php(script_path):
    p = subprocess.Popen(['php', script_path] )

【讨论】:

  • 谢谢。对不起菜鸟问题,但由于它在远程服务器上,我如何指定路径?可以是网址吗?另外,即使python退出,php脚本还会继续工作吗?
猜你喜欢
  • 1970-01-01
  • 2019-11-12
  • 2010-12-26
  • 2023-01-28
  • 1970-01-01
  • 2013-12-28
  • 1970-01-01
  • 2012-09-29
  • 2013-11-13
相关资源
最近更新 更多