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设置默认编码为utf8的方法
Jul 01 Python
python写一个md5解密器示例
Feb 23 Python
Python3.5.3下配置opencv3.2.0的操作方法
Apr 02 Python
python寻找list中最大值、最小值并返回其所在位置的方法
Jun 27 Python
python实现扫描ip地址的小程序
Apr 16 Python
python高斯分布概率密度函数的使用详解
Jul 10 Python
用Pytorch训练CNN(数据集MNIST,使用GPU的方法)
Aug 19 Python
Python实现遗传算法(二进制编码)求函数最优值方式
Feb 11 Python
Python操作Word批量生成合同的实现示例
Aug 28 Python
python使用隐式循环快速求和的实现示例
Sep 11 Python
python接口自动化框架实战
Dec 23 Python
python中spy++的使用超详细教程
Jan 29 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 日期和时间的处理-郑阿奇(续)
2011/07/04 PHP
php中使用redis队列操作实例代码
2013/02/07 PHP
php打开本地exe程序,js打开本地exe应用程序,并传递相关参数方法
2018/02/06 PHP
jquery 插件 人性化的消息显示
2008/01/21 Javascript
一些常用的JavaScript函数(json)附详细说明
2011/05/25 Javascript
jquery ajax修改全局变量示例代码
2013/11/08 Javascript
分享一则javascript 调试技巧
2015/01/02 Javascript
PHP+jQuery+Ajax实现多图片上传效果
2015/03/14 Javascript
js闭包所用的场合以及优缺点分析
2015/06/22 Javascript
jQuery+html5+css3实现圆角无刷新表单带输入验证功能代码
2015/08/21 Javascript
理解js对象继承的N种模式
2016/01/25 Javascript
AngularJS入门教程之Cookies读写操作示例
2016/11/02 Javascript
自学实现angularjs依赖注入
2016/12/20 Javascript
JavaScript严格模式详解
2017/01/16 Javascript
JavaScript html5利用FileReader实现上传功能
2020/03/27 Javascript
jquery.picsign图片标注组件实例详解
2018/02/02 jQuery
Vue.js自定义事件的表单输入组件方法
2018/03/08 Javascript
使用Vuex实现一个笔记应用的方法
2018/03/13 Javascript
vue-baidu-map 进入页面自动定位的解决方案(推荐)
2018/04/28 Javascript
Vue中对拿到的数据进行A-Z排序的实例
2018/09/25 Javascript
微信小程序登录数据解密及状态维持实例详解
2019/05/06 Javascript
Net微信网页开发 使用微信JS-SDK获取当前地理位置过程详解
2019/08/26 Javascript
Python中str.format()详解
2017/03/12 Python
python 换位密码算法的实例详解
2017/07/19 Python
django用户登录验证的完整示例代码
2019/07/21 Python
PyTorch在Windows环境搭建的方法步骤
2020/05/12 Python
python爬虫爬取网页数据并解析数据
2020/09/18 Python
Python用户自定义异常的实现
2020/12/25 Python
Html5页面点击遮罩层背景关闭遮罩层
2020/11/30 HTML / CSS
英国排名第一的礼品体验公司:Red Letter Days
2018/08/16 全球购物
小学生操行评语大全
2014/04/22 职场文书
财务助理岗位职责范本
2014/10/09 职场文书
质量整改报告范文
2014/11/08 职场文书
2014年城管工作总结
2014/11/20 职场文书
三八红旗手事迹材料
2014/12/26 职场文书
分析JVM源码之Thread.interrupt系统级别线程打断
2021/06/29 Java/Android