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


Posted in Python onDecember 29, 2020

前言

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

<?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个参数
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放在同目录下运行

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函数内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python设置Socket代理及实现远程摄像头控制的例子
Nov 13 Python
python xlsxwriter创建excel图表的方法
Jun 11 Python
Python爬虫设置代理IP(图文)
Dec 23 Python
11个Python3字典内置方法大全与示例汇总
May 13 Python
python itchat给指定联系人发消息的方法
Jun 11 Python
FFT快速傅里叶变换的python实现过程解析
Oct 21 Python
关于Django Models CharField 参数说明
Mar 31 Python
Keras Convolution1D与Convolution2D区别说明
May 22 Python
python爬虫把url链接编码成gbk2312格式过程解析
Jun 08 Python
通过实例简单了解Python sys.argv[]使用方法
Aug 04 Python
pycharm配置python 设置pip安装源为豆瓣源
Feb 05 Python
如何在pycharm中快捷安装pip命令(如pygame)
May 31 Python
详解Open Folder as PyCharm Project怎么添加的方法
Dec 29 #Python
pycharm如何设置官方中文(如何汉化)
Dec 29 #Python
详解Pycharm第三方库的安装及使用方法
Dec 29 #Python
Django2.1.7 查询数据返回json格式的实现
Dec 29 #Python
Python 获取异常(Exception)信息的几种方法
Dec 29 #Python
python 将html转换为pdf的几种方法
Dec 29 #Python
python实现ping命令小程序
Dec 28 #Python
You might like
第一节--面向对象编程
2006/11/16 PHP
PHP实现上传多图即时显示与即时删除的方法
2017/05/09 PHP
JavaScript Event学习补遗 addEventSimple
2010/02/11 Javascript
实例说明为什么不要行内使用javascript
2014/04/18 Javascript
jQuery插件StickUp实现网页导航置顶
2015/04/12 Javascript
Css3制作变形与动画效果
2015/07/24 Javascript
JavaScript生成二维码图片小结
2015/12/27 Javascript
javascript从定义到执行 你不知道的那些事
2016/01/04 Javascript
JavaScript版经典游戏之扫雷游戏完整示例【附demo源码下载】
2016/12/12 Javascript
基于JavaScript实现移动端无限加载分页
2017/03/27 Javascript
js实现放大镜特效
2017/05/18 Javascript
关于ES6箭头函数中的this问题
2018/02/27 Javascript
vue js秒转天数小时分钟秒的实例代码
2018/08/08 Javascript
vue过滤器用法实例分析
2019/03/15 Javascript
在Koa.js中实现文件上传的接口功能
2019/10/08 Javascript
Node.js设置定时任务之node-schedule模块的使用详解
2020/04/28 Javascript
JavaScript代码简化技巧实例解析
2020/09/09 Javascript
python中bisect模块用法实例
2014/09/25 Python
Python生成器以及应用实例解析
2018/02/08 Python
python学习开发mock接口
2019/04/28 Python
python内存动态分配过程详解
2019/07/15 Python
解决Pycharm 包已经下载,但是运行代码提示找不到模块的问题
2019/08/31 Python
Django多个app urls配置代码实例
2020/11/26 Python
Grid 宫格常用布局的实现
2020/01/10 HTML / CSS
介绍下Java中==和equals的区别
2013/09/01 面试题
小学六一儿童节活动方案
2014/08/27 职场文书
2014年科协工作总结
2014/12/09 职场文书
教师业务学习材料
2014/12/16 职场文书
人事主管岗位职责
2015/02/04 职场文书
小学生光盘行动倡议书
2015/04/28 职场文书
党员转正介绍人意见
2015/06/03 职场文书
2015年科学教研组工作总结
2015/07/22 职场文书
入党宣誓大会后的感想
2015/08/10 职场文书
安全教育主题班会教案
2015/08/12 职场文书
毕业生求职自荐信(2016最新版)
2016/01/28 职场文书
MySQL锁机制
2021/04/05 MySQL