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转换HTML到Text纯文本的方法
Jan 15 Python
Python写的英文字符大小写转换代码示例
Mar 06 Python
python实现定时播放mp3
Mar 29 Python
Python常用知识点汇总
May 08 Python
Python3基于sax解析xml操作示例
May 22 Python
Python Flask框架扩展操作示例
May 03 Python
Python 中Django安装和使用教程详解
Jul 03 Python
python机器学习库xgboost的使用
Jan 20 Python
Python同时迭代多个序列的方法
Jul 28 Python
python 下划线的不同用法
Oct 24 Python
celery在python爬虫中定时操作实例讲解
Nov 27 Python
基于Python实现对比Exce的工具
Apr 07 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
Windows7下PHP开发环境安装配置图文方法
2010/05/20 PHP
完美实现GIF动画缩略图的php代码
2011/01/02 PHP
php排序算法(冒泡排序,快速排序)
2012/10/09 PHP
Yii中实现处理前后台登录的新方法
2015/12/28 PHP
Yii2.0中的COOKIE和SESSION用法
2016/08/12 PHP
PHP多维数组排序array详解
2017/11/21 PHP
laravel框架如何设置公共头和公共尾
2019/10/22 PHP
js checkbox(复选框) 使用集锦
2009/04/28 Javascript
两个select之间option的互相添加操作(jquery实现)
2009/11/12 Javascript
jquery插件bxslider用法实例分析
2015/04/16 Javascript
浅谈window对象的scrollBy()方法
2015/07/15 Javascript
AngularJS中过滤器的使用与自定义实例代码
2016/09/17 Javascript
jQuery常见的选择器及用法介绍
2016/12/20 Javascript
使用BootStrap建立响应式网页——通栏轮播图(carousel)
2016/12/21 Javascript
关于使用js算总价的问题
2017/06/23 Javascript
微信web端后退强制刷新功能的实现代码
2018/03/04 Javascript
Vue中使用vue-i18插件实现多语言切换功能
2018/04/25 Javascript
详解Jest结合Vue-test-utils使用的初步实践
2019/06/27 Javascript
vue ajax 拦截原理与实现方法示例
2019/11/29 Javascript
浅析 Vue 3.0 的组装式 API(一)
2020/08/31 Javascript
Node.js web 应用如何封装到Docker容器中
2020/09/01 Javascript
jQuery实现简单三级联动效果
2020/09/05 jQuery
Javascript中window.name属性详解
2020/11/19 Javascript
[01:20:06]TNC vs VG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python Tkinter基础控件用法
2014/09/03 Python
python实现图书管理系统
2018/03/12 Python
Ubuntu下Python2与Python3的共存问题
2018/10/31 Python
Python使用while循环花式打印乘法表
2019/01/28 Python
在Python运行时动态查看进程内部信息的方法
2019/02/22 Python
python如何导入依赖包
2020/07/13 Python
英国最大的电脑零售连锁店集团:PC World
2016/10/10 全球购物
Lands’ End英国官方网站:高质量男女服装
2017/10/07 全球购物
一套比较完整的软件测试人员面试题
2012/05/13 面试题
自动化专业毕业生自荐信
2013/11/01 职场文书
商铺门前三包责任书
2014/07/25 职场文书
如何在Python项目中引入日志
2021/05/31 Python