从python调用php函数

bkkx9g8r  于 2023-01-04  发布在  PHP
关注(0)|答案(2)|浏览(129)

我的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的start函数。我不知道如何从Python中访问start函数。有人能帮我吗?

ifmq2ha2

ifmq2ha21#

我就是这么做的。就像施咒一样。

# 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)

注意,对于Python3,您需要res = php(code.encode()),请参见下面的答案

2uluyalo

2uluyalo2#

对先前答复的小幅更新:
对于python3,代码字符串应编码为类似字节的对象

php(code.encode())

相关问题