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搭建Django应用程序步骤及版本冲突问题解决
Nov 19 Python
Python操作MySQL简单实现方法
Jan 26 Python
分析在Python中何种情况下需要使用断言
Apr 01 Python
wxPython定时器wx.Timer简单应用实例
Jun 03 Python
谈谈如何手动释放Python的内存
Dec 17 Python
python 列表递归求和、计数、求最大元素的实例
Nov 28 Python
Python3实现的反转单链表算法示例
Mar 08 Python
python3+selenium自动化测试框架详解
Mar 17 Python
python按键按住不放持续响应的实例代码
Jul 17 Python
Anaconda配置pytorch-gpu虚拟环境的图文教程
Apr 16 Python
Python实现画图软件功能方法详解
Jul 28 Python
python批量创建变量并赋值操作
Jun 03 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实现QQ登录实例代码
2016/01/14 PHP
PHP生成静态HTML文档实现代码
2016/06/23 PHP
Docker配置PHP开发环境教程
2016/12/21 PHP
Django 中 cookie的使用
2017/08/17 PHP
用JS剩余字数计算的代码
2008/07/03 Javascript
jQuery 操作XML入门
2008/12/25 Javascript
JavaScript中也使用$美元符号来代替document.getElementById
2010/06/19 Javascript
Javascript 修改String 对象 增加去除空格功能(示例代码)
2013/11/30 Javascript
网页中JS函数自动执行常用三种方法
2016/03/30 Javascript
实用jquery操作表单元素的简单代码
2016/07/04 Javascript
JavaScript学习笔记整理_setTimeout的应用
2016/09/19 Javascript
jQuery和CSS仿京东仿淘宝列表导航菜单
2017/01/04 Javascript
移动端界面的适配
2017/01/11 Javascript
js时间戳格式化成日期格式的多种方法介绍
2017/02/16 Javascript
vue.js实现数据动态响应 Vue.set的简单应用
2017/06/15 Javascript
实现div内部滚动条滚动到底部和顶部的代码
2017/11/15 Javascript
axios拦截设置和错误处理方法
2018/03/05 Javascript
微信小程序实现点击图片旋转180度并且弹出下拉列表
2018/11/27 Javascript
如何通过JS实现日历简单算法
2020/10/14 Javascript
Webpack3+React16代码分割的实现
2021/03/03 Javascript
[01:23]一分钟告诉你 DOTA2为什么叫信仰2
2014/06/20 DOTA
[03:49]DOTA2 2015国际邀请赛中国区预选赛第二日现场百态
2015/05/27 DOTA
[01:42:49]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD BO3 第一场 2月26日
2021/03/11 DOTA
在漏洞利用Python代码真的很爽
2007/08/26 Python
Python脚本实现集群检测和管理功能
2015/03/06 Python
python  logging日志打印过程解析
2019/10/22 Python
python异常处理、自定义异常、断言原理与用法分析
2020/03/23 Python
Qoo10马来西亚:全球时尚和引领潮流的购物市场
2016/08/25 全球购物
美国CVS药店官网:CVS Pharmacy
2018/07/26 全球购物
英国HYPE双肩包官网:英国本土时尚潮牌
2018/09/26 全球购物
彩色的非洲教学反思
2014/02/18 职场文书
高中军训感想300字
2014/03/04 职场文书
党的群众路线教育实践活动对照检查材料思想汇报
2014/09/19 职场文书
学校班子个人对照检查材料思想汇报
2014/09/27 职场文书
公积金贷款承诺书
2015/04/30 职场文书
解决Pytorch dataloader时报错每个tensor维度不一样的问题
2021/05/28 Python