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实现代理服务功能实例
Nov 15 Python
调试Python程序代码的几种方法总结
Apr 28 Python
Python如何为图片添加水印
Nov 25 Python
详解Python 模拟实现生产者消费者模式的实例
Aug 10 Python
Python实现批量压缩图片
Jan 25 Python
Python使用combinations实现排列组合的方法
Nov 13 Python
Python 实现微信防撤回功能
Apr 29 Python
django使用django-apscheduler 实现定时任务的例子
Jul 20 Python
利用pandas将非数值数据转换成数值的方式
Dec 18 Python
python中print格式化输出的问题
Apr 16 Python
pytorch训练神经网络爆内存的解决方案
May 22 Python
golang特有程序结构入门教程
Jun 02 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中for循环语句的几种变型
2006/11/26 PHP
PHP获取当前日期所在星期(月份)的开始日期与结束日期(实现代码)
2013/06/18 PHP
[原创]js与自动伸缩图片 自动缩小图片的多浏览器兼容的方法总结
2007/03/12 Javascript
Javascript实现仿WebQQ界面的“浮云”兼容 IE7以上版本及FF
2011/04/27 Javascript
jQuery 过滤not()与filter()实例代码
2012/05/10 Javascript
JS生成随机字符串的多种方法
2014/06/10 Javascript
点击表单提交时出现jQuery没有权限的解决方法
2014/07/23 Javascript
浅谈NodeJS中require路径问题
2015/05/07 NodeJs
jQuery实现仿百度帖吧头部固定导航效果
2015/08/07 Javascript
浅析Bootstrip的select控件绑定数据的问题
2016/05/10 Javascript
关于Javascript回调函数的一个妙用
2016/08/29 Javascript
Canvas + JavaScript 制作图片粒子效果
2017/02/08 Javascript
jq给页面添加覆盖层遮罩的实例
2017/02/16 Javascript
浅谈react+es6+webpack的基础配置
2017/08/09 Javascript
第一个Vue插件从封装到发布
2017/11/22 Javascript
JS实现非首屏图片延迟加载的示例
2018/01/06 Javascript
深入探讨JavaScript的最基本部分之执行上下文
2019/02/12 Javascript
vue图片上传组件使用详解
2019/12/23 Javascript
Webpack中SplitChunksPlugin 配置参数详解
2020/03/24 Javascript
JavaScript实现动态生成表格
2020/08/02 Javascript
Python获取Windows或Linux主机名称通用函数分享
2014/11/22 Python
Python模拟用户登录验证
2017/09/11 Python
python时间日期函数与利用pandas进行时间序列处理详解
2018/03/13 Python
python绘制规则网络图形实例
2019/12/09 Python
python 实现在shell窗口中编写print不向屏幕输出
2020/02/19 Python
Python hashlib模块的使用示例
2020/10/09 Python
Mio Skincare美国官网:身体紧致及孕期身体护理
2017/03/05 全球购物
会计师事务所审计实习自我鉴定
2013/09/20 职场文书
旅游管理实习自我鉴定
2013/09/29 职场文书
工作会议欢迎词
2014/01/16 职场文书
教师三严三实对照检查材料
2014/09/25 职场文书
大学迎新生标语
2014/10/06 职场文书
运动会开幕式通讯稿
2015/07/18 职场文书
启动Tomcat时出现大量乱码的解决方法
2021/06/21 Java/Android
详解Python中*args和**kwargs的使用
2022/04/07 Python
ubuntu如何搭建vsftpd服务器
2022/12/24 Servers