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监控主机是否存活并以邮件报警
Sep 22 Python
详解python时间模块中的datetime模块
Jan 13 Python
整理Python 常用string函数(收藏)
May 30 Python
使用python实现接口的方法
Jul 07 Python
简单实现python画圆功能
Jan 25 Python
python leetcode 字符串相乘实例详解
Sep 03 Python
详解python中自定义超时异常的几种方法
Jul 29 Python
windows环境中利用celery实现简单任务队列过程解析
Nov 29 Python
Pytorch的mean和std调查实例
Jan 02 Python
Docker部署Python爬虫项目的方法步骤
Jan 19 Python
关于Python不换行输出和不换行输出end=““不显示的问题(亲测已解决)
Oct 27 Python
pytorch中的 .view()函数的用法介绍
Mar 17 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&amp;java(二)
2006/10/09 PHP
PHP生成Flash动画的实现代码
2010/03/12 PHP
Windows7下的php环境配置教程
2015/02/28 PHP
php + nginx项目中的权限详解
2017/05/23 PHP
详解PHP 二维数组排序保持键名不变
2019/03/06 PHP
php设计模式之迭代器模式实例分析【星际争霸游戏案例】
2020/04/07 PHP
关于二级域名下使用一级域名下的COOKIE的问题
2011/11/07 Javascript
JavaScript 5 新增 Array 方法实现介绍
2012/02/06 Javascript
Node.js开发指南中的简单实例(mysql版)
2013/09/17 Javascript
javascript继承的六大模式小结
2015/04/13 Javascript
JavaScript在Android的WebView中parseInt函数转换不正确问题解决方法
2015/04/25 Javascript
如何用jQuery实现ASP.NET GridView折叠伸展效果
2015/09/26 Javascript
JavaScript中日期的相关操作方法总结
2015/10/24 Javascript
Angular获取手机验证码实现移动端登录注册功能
2017/05/17 Javascript
JavaScript字符串检索字符的方法
2017/06/23 Javascript
基于webpack 实用配置方法总结
2017/09/28 Javascript
基于滚动条位置判断的简单实例
2017/12/14 Javascript
node+vue实现文件上传功能
2020/05/28 Javascript
详解vue3.0 diff算法的使用(超详细)
2020/07/01 Javascript
[04:09]显微镜下的DOTA2第十二期—NaVi美如画的团战
2014/06/23 DOTA
详解Tensorflow数据读取有三种方式(next_batch)
2018/02/01 Python
使用pandas批量处理矢量化字符串的实例讲解
2018/07/10 Python
python替换字符串中的子串图文步骤
2019/06/19 Python
Python3enumrate和range对比及示例详解
2019/07/13 Python
python爬虫爬取网页数据并解析数据
2020/09/18 Python
python 装饰器重要在哪
2021/02/14 Python
需要知道的CSS3动画技术
2010/01/01 HTML / CSS
北京泡泡网网络有限公司.net面试题
2012/07/17 面试题
ShellScript面试题一则-ShellScript编程
2014/03/05 面试题
酒店管理专业自荐信
2014/05/23 职场文书
庆国庆国旗下讲话稿2014
2014/09/21 职场文书
2015年度学校应急管理工作总结
2015/10/22 职场文书
班主任经验交流心得体会
2015/11/02 职场文书
离婚起诉书范文2016
2015/11/26 职场文书
使用Pytorch训练two-head网络的操作
2021/05/28 Python
vue项目多环境配置(.env)的实现
2021/07/21 Vue.js