在Python中执行PHP代码

jia*_*hao 29 php python

出于某种原因,我必须运行一个PHP脚本来从Python获取图像.因为php脚本非常大并且不是我的,所以我需要花费几天的时间才能找到正确使用的算法并将其转换为python.

我很奇怪是否有任何方法可以运行PHP脚本,几乎没有参数,它返回一个图像,在python中.

xda*_*azz 41

示例代码:

import subprocess

# if the script don't need output.
subprocess.call("php /path/to/your/script.php")

# if you want output
proc = subprocess.Popen("php /path/to/your/script.php", shell=True, stdout=subprocess.PIPE)
script_response = proc.stdout.read()
Run Code Online (Sandbox Code Playgroud)

  • 这是不正确的.第一个调用不适用于POSIX系统.请使用`subprocess.call(["php","/ path/to/your/script.php"])`.使用`script_response = subprocess.check_output(["php","/ path/to/your/script.php"])`而不是第二个例子. (11认同)
  • 这是从http://mail.python.org/pipermail/tutor/2009-October/071973.html粘贴的代码 (3认同)

Sjo*_*erd 14

您只需从Python执行php可执行文件即可.

编辑:Python 3.5及更高版本的示例subprocess.run:

import subprocess

result = subprocess.run(
    ['php', 'image.php'],    # program and arguments
    stdout=subprocess.PIPE,  # capture stdout
    check=True               # raise exception if program fails
)
print(result.stdout)         # result.stdout contains a byte-string
Run Code Online (Sandbox Code Playgroud)


Wes*_*ley 6

您可以使用php.py.这将允许你在python中执行php代码,就像在这个例子中一样(取自这里):

php = PHP("require '../code/private/common.php';")
code = """for ($i = 1; $i <= 10; $i++) { echo "$i\n"; }"""
print php.get_raw(code)
Run Code Online (Sandbox Code Playgroud)