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中global用法实例分析
Apr 30 Python
浅谈Python中copy()方法的使用
May 21 Python
理解python正则表达式
Jan 15 Python
把csv文件转化为数组及数组的切片方法
Jul 04 Python
详解Python中的正则表达式
Jul 08 Python
将python运行结果保存至本地文件中的示例讲解
Jul 11 Python
django 2.2和mysql使用的常见问题
Jul 18 Python
修改 CentOS 6.x 上默认Python的方法
Sep 06 Python
python绘制彩虹图
Dec 16 Python
利用python中集合的唯一性实现去重
Feb 11 Python
Django使用list对单个或者多个字段求values值实例
Mar 31 Python
python正则表达式re.match()匹配多个字符方法的实现
Jan 27 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
PHP统计nginx访问日志中的搜索引擎抓取404链接页面路径
2014/06/30 PHP
PHP中error_reporting()用法详解
2015/08/31 PHP
PHP数学运算函数大汇总(经典值得收藏)
2016/04/01 PHP
PHP获取当前文件的父目录方法汇总
2016/07/21 PHP
Zend Framework入门教程之Zend_Registry组件用法详解
2016/12/09 PHP
Laravel框架实现多个视图共享相同数据的方法详解
2019/07/09 PHP
php与js的区别是什么
2013/08/05 Javascript
jquery中的过滤操作详细解析
2013/12/02 Javascript
js鼠标滑轮滚动事件绑定的简单实例(兼容主流浏览器)
2014/01/14 Javascript
javascript ajax的5种状态介绍
2014/08/18 Javascript
javascript快速排序算法详解
2014/09/17 Javascript
JavaScript验证Email(3种方法)
2015/09/21 Javascript
AngularJS基础 ng-switch 指令简单示例
2016/08/03 Javascript
浅谈jquery采用attr修改form表单enctype不起作用的问题
2016/11/25 Javascript
AngularJS实践之使用ng-repeat中$index的注意点
2016/12/22 Javascript
深入浅出webpack之externals的使用
2017/12/04 Javascript
jquery实现左右轮播切换效果
2018/01/01 jQuery
Vue.js 实现微信公众号菜单编辑器功能(一)
2018/05/08 Javascript
详解在React中跨组件分发状态的三种方法
2018/08/09 Javascript
微信小程序实现跑马灯效果
2020/10/21 Javascript
JS实现压缩上传图片base64长度功能
2019/12/03 Javascript
浅析Python中return和finally共同挖的坑
2017/08/18 Python
python3使用SMTP发送HTML格式邮件
2018/06/19 Python
NumPy 基本切片和索引的具体使用方法
2019/04/24 Python
Python3 文章标题关键字提取的例子
2019/08/26 Python
pygame实现贪吃蛇游戏(下)
2019/10/29 Python
解决django model修改添加字段报错的问题
2019/11/18 Python
python递归函数求n的阶乘,优缺点及递归次数设置方式
2020/04/02 Python
tensorflow之读取jpg图像长和宽实例
2020/06/18 Python
移动端HTML5实现文件上传功能【附代码】
2016/03/25 HTML / CSS
java程序员面试交流
2012/11/29 面试题
银行学习十八大感想
2014/01/11 职场文书
小学教师办公室制度
2014/02/03 职场文书
优秀共产党员先进事迹材料
2014/05/06 职场文书
房产协议书范本
2014/10/18 职场文书
爱国主义教育主题班会
2015/08/13 职场文书