服务器之家

服务器之家 > 正文

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

时间:2021-08-19 00:27     来源/作者:xiaofeiyuan

前言

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
 
 
function 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为函数参数$s2
 
var_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
2
3
4
# 字符串中包含空格、逗号、反斜杠,需要使用""来确定为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子进程执行php命令行

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import subprocess
 
 
class 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 res
 
 
cmd1 = '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文件中函数的文章就介绍到这了,更多相关python调用php函数内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/xiaofeiyuan/article/details/111869182

标签:

相关文章

热门资讯

yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
2021德云社封箱演出完整版 2021年德云社封箱演出在线看
2021德云社封箱演出完整版 2021年德云社封箱演出在线看 2021-03-15
返回顶部