python如何调用php文件中的函数详解

时间:2021-05-22

前言

python调用php代码实现思路:php文件可通过在terminal中使用php命令行进行调用,因此可使用python开启子进程执行命令行代码。函数所需的参数可通过命令行传递。

测试环境

1、操作系统:macos10.13.2

2、php版本:PHP 7.1.7(mac自带)

3、python版本:python3.6.0

4、python库:subprocess

调用php函数

php命令行调用php文件中的函数

php文件:test_hello.php

<?phpfunction hello_world($s1){ $str1 = $s1; echo $str1; echo "\n";}function hello_world2($s1, $s2){ $str1 = $s1; $str2 = $s2; echo $s1; echo "**********"; echo $s2; echo "\n";}// 获取参数,索引为0为调用的文件路径,索引为1为调用的函数,索引为2为函数传入参数$s1,索引为3为函数参数$s2var_dump($argv);// exit;// 调用函数$func_name = $argv[1];if ($func_name == "hello_world"){ // 参数1 $param1 = $argv[2]; hello_world($param1);}elseif ($func_name == "hello_world2"){ // 参数1 $param1 = $argv[2]; // 参数2 $param2 = $argv[3]; hello_world2($param1, $param2);}else{ echo "the function $func_name is not exist !";}?>

terminal执行php命令

# 字符串中包含空格、逗号、反斜杠,需要使用""来确定为1个参数php -f test_hello.php hello_world "My name is John\\, age is 20."php -f test_hello.php hello_world2 "My name is John\\, age is 20." "My hometown is BaoDing."php -f test_hello.php hello_world3 "My name is John\\, age is 20."

执行结果

python子进程执行php命令行

python文件:test.py,将test_hello.php与test.py放在同目录下运行

import subprocessclass Test(object): def run(self, cmd): proc = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE) # 开启子进程 res = proc.stdout.read() if res: res = res.decode() return rescmd1 = 'php -f test_hello.php hello_world "My name is John\\, age is 20."'cmd2 = 'php -f test_hello.php hello_world2 "My name is John\\, age is 20." "My hometown is BaoDing."'cmd3 = 'php -f test_hello.php hello_world3 "My name is John\\, age is 20."'obj = Test()for i in [cmd1, cmd2, cmd3]: res = obj.run(cmd1) print(res) print("*" * 10)

到此这篇关于python如何调用php文件中函数的文章就介绍到这了,更多相关python调用php函数内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章