繁体   English   中英

从 Python 1:1 调用 PHP

[英]1:1 call PHP from Python

我们正在使用 Splunk(一种分析日志文件等机器数据的工具)并在 PHP 中有一个应用程序。 对于某些数据,我们需要在 php(基于 CLI)中调用我们的应用程序。 不幸的是,Splunk 仅支持 Python 调用。
有没有一种简单的方法可以使用相同的参数来 1:1 “转发/调用” php 并返回输出,比如“passthru”。 我只找到了带有所谓的子进程模块的解决方案的一部分,但我的 Python 经验为零,所以无法让它工作。

例如,splunk 调用:
python external_lookup.py argument1 argument2 argument3
- 然后 python 脚本应该调用(使用给 python 的 CLI 参数):
php external_lookup.php argument1 argument2 argument3
- 然后 php 写出它的输出
- Python 捕获该输出并自行输出

非常感谢任何帮助,或者更好的工作示例脚本。

提前致谢,
文斯

使用子流程模块中的Popen

import sys
from subprocess import Popen
output = subprocess.Popen(['php', 'path/to/script.php'] + sys.argv[1:], stdout=subprocess.PIPE).communicate()[0]

sys.argv[1:]包含除了 python 脚本本身的名称之外的每个命令行参数。

使用subprocess.call

import sys, subprocess
sys.exit(subprocess.call(['php', sys.argv[0].replace('.py', '.php')] + sys.argv[1:]))

编辑:使 Python 脚本返回 PHP 脚本返回的值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM