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 相关文章推荐
详谈Python3 操作系统与路径 模块(os / os.path / pathlib)
Apr 26 Python
python3下使用cv2.imwrite存储带有中文路径图片的方法
May 10 Python
Python利用splinter实现浏览器自动化操作方法
May 11 Python
Python Series从0开始索引的方法
Nov 06 Python
Python中的枚举类型示例介绍
Jan 09 Python
Python使用Shelve保存对象方法总结
Jan 28 Python
python中列表的切片与修改知识点总结
Jul 23 Python
使用python绘制温度变化雷达图
Oct 18 Python
python 变量初始化空列表的例子
Nov 28 Python
Python使用graphviz画流程图过程解析
Mar 31 Python
python合并多个excel文件的示例
Sep 23 Python
python使用matplotlib:subplot绘制多个子图的示例
Sep 24 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中session过期时间设置及session回收机制介绍
2014/05/05 PHP
php实现用手机关闭计算机(电脑)的方法
2015/04/22 PHP
简单谈谈PHP vs Node.js
2015/07/17 PHP
PHP实现字符串的全排列详解
2019/04/24 PHP
php解压缩zip和rar压缩包文件的方法
2019/07/10 PHP
JS创建优美的页面滑动块效果 - Glider.js
2007/09/27 Javascript
Jquery选择器 $实现原理
2009/12/02 Javascript
javascript Object与Function使用
2010/01/11 Javascript
JavaScript日历实现代码
2010/09/12 Javascript
jQuery getJSON()+.ashx 实现分页(改进版)
2013/03/28 Javascript
JS实现切换标签页效果实例代码
2013/11/01 Javascript
用jQuery与JSONP轻松解决跨域访问的问题
2014/02/04 Javascript
jquery设置按钮停顿3秒不可用
2014/03/07 Javascript
Bootstrap每天必学之简单入门
2015/11/19 Javascript
JS模拟简易滚动条效果代码(附demo源码)
2016/04/05 Javascript
js手机号批量滚动抽奖实现代码
2020/04/17 Javascript
Vue结合原生js实现自定义组件自动生成示例
2017/01/21 Javascript
Vue父组件调用子组件事件方法
2018/02/23 Javascript
python使用itchat实现手机控制电脑
2018/02/22 Python
Tensorflow加载预训练模型和保存模型的实例
2018/07/27 Python
pycharm 解除默认unittest模式的方法
2018/11/30 Python
Python绘图Matplotlib之坐标轴及刻度总结
2019/06/28 Python
如何爬取通过ajax加载数据的网站
2019/08/15 Python
pytorch 实现tensor与numpy数组转换
2019/12/27 Python
详解使用python3.7配置开发钉钉群自定义机器人(2020年新版攻略)
2020/04/01 Python
css3中单位px,em,rem,vh,vw,vmin,vmax的区别及浏览器支持情况
2016/12/06 HTML / CSS
博朗(Braun)俄罗斯官方商店:德国小家电品牌
2019/09/24 全球购物
软件测试工程师结构化面试题库
2016/11/23 面试题
员工评语大全
2014/01/19 职场文书
咖啡蛋糕店创业计划书
2014/01/28 职场文书
校园环保广播稿(3篇)
2014/09/15 职场文书
领导班子奢靡之风查摆问题及整改措施
2014/09/27 职场文书
社区工作者个人总结
2015/02/28 职场文书
2016年村党支部公开承诺书
2016/03/24 职场文书
Python爬虫进阶之Beautiful Soup库详解
2021/04/29 Python
go语言中http超时引发的事故解决
2021/06/02 Golang