从python调用php函数

时间:2013-11-26 10:34:38

标签: php python function subprocess

我的PHP代码:

function start($height, $width) {
    # do stuff
    return $image;
}

这是我的Python代码:

import subprocess
def php(script_path):
        p = subprocess.Popen(['php', script_path], stdout=subprocess.PIPE)
        result = p.communicate()[0]
            return result

    page_html = "test entry"
    output = php("file.php") 
    print page_html + output

    imageUrl = start(h,w)

在Python中我想使用PHP启动功能。我不知道如何从Python访问启动函数。谁可以帮我这个事?

2 个答案:

答案 0 :(得分:10)

我就是这样做的。它就像一个魅力。

# shell execute PHP
def php(code):
  # open process
  p = Popen(['php'], stdout=PIPE, stdin=PIPE, stderr=STDOUT, close_fds=True)

  # read output
  o = p.communicate(code)[0]

  # kill process
  try:
    os.kill(p.pid, signal.SIGTERM)
  except:
    pass

  # return
  return o

要执行特定文件,请执行以下操作:

width = 100
height = 100

code = """<?php

  include('/path/to/file.php');
  echo start(""" + width + """, """ + height + """);

?>
"""
res = php(code)

答案 1 :(得分:0)

对以前的答复进行了小的更新:

对于python3代码,字符串应编码为类似字节的对象

php(code.encode())