python echo函数_python如何调用php文件中的函数详解

前言

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

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文件: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函数内容请搜索站圈网以前的文章或继续浏览下面的相关文章希望大家以后多多支持站圈网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/304235.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

今天换了ubuntu10.04

今天换成了ubuntu10.04,开机很快,17秒到登录界面,在我这台dell vostro 1500上很快很快了。快是ubuntu10.04给我的第一印象。至于界面什么的,我真觉得没什么区别,反正我也不开特效,管它呢!反正我…

Jupyter 常见可视化框架的选择

文末有福利!对于以Python作为技术栈的数据科学工作者,Jupyter是不得不提的数据报告工具。可能对于R社区而言,鼎鼎大名的ggplot2是常见的可视化框架,而大家对于Python,以及Jupyter为核心的交互式报告的可个视化方案就并…

AOP(面向切面编程)大概了解一下

前言上一篇在聊MemoryCache的时候,用到了Autofac提供的拦截器进行面向切面编程,很明显能体会到其优势,既然涉及到了,那就趁热打铁,一起来探探面向切面编程。正文1. 概述在软件业,AOP为Aspect Oriented Prog…

es6添加删除class_es6中class类的使用

在es5中我们是使用构造函数实例化出来一个对象,那么构造函数与普通的函数有什么区别呢?其实没有区别,无非就是函数名称用首字母大写来加以区分,这个不用对说对es5有了解的朋友都应该知道。但是es5的这种方式给人的感觉还是不够严谨…

搞定WordPress的日志自动截断

WordPress默认首页显示日志全文,这个很让人受不了,在IC之前就想搞定这个,可是一直没有时间,现在比赛过后,作为休闲,总算是搞定,很多人说用more标签,最后还是用了某位仁兄做的很好的插…

如何选择 WebClient HttpWebRequest HttpClient ?

当我们在用 .NET 调用 RestAPI 时通常有三种选择,分别为:WebClient, HttpWebRequest,HttpClient,这篇文章我们将会讨论如何使用这三种方式去调用 RestAPI,我还会提供相应的代码案例来帮助你更好的理解这三者的概念和使…

gre考试能用计算机么,新GRE考试必须知道的九大考场问题

参加GRE考试须知GRE考场问题1、计算机化GRE考试考场的环境怎样?计算机化考场按照全球统一标准建设,温度适宜,光线充足,隔音效果良好。各个考位由屏风分隔,相对独立。GRE考试须知GRE考场问题2、参加计算机化GRE考试需要携带什么文…

python property setter_Python:动态属性 property setter 以及 __getattr__ 属性

1. property引言:-- 假设有这样一个需求,我们需要创建一个 User 类,并初始化 birthday 参数,之后根据 birthday 计算得到年龄;-- 我们设计下面的代码实现该需求:>>> from datetime import date, d…

机器学习三部曲

随着科技的发展,计算机对人类的生产活动和社会活动产生了极为重要的影响,同时以强大的生命力飞速发展着。目前计算机正广泛用于社会各个领域,并朝着微型化、网络化、智能化和巨型化的方向前进。说到智能化,大家最先想到的应该就是…

AntDesign Pro + .NET Core 实现基于JWT的登录认证

很多同学说AgileConfig的UI实在是太丑了。我想想也是的,本来这个项目是我自己使用的,一开始甚至连UI都没有,全靠手动在数据库里修改数据。后来加上了UI也是使用了老掉牙的bootstrap3做为基础样式。前台框架也是使用了angularjs,同…

武汉大学计算机学院2019考研复试,2019年武汉大学硕士研究生复试及录取名单汇总...

原标题:2019年武汉大学硕士研究生复试及录取名单汇总考生可以通过录取名单了解到很多重要的信息,例如复试比例,进复试最低分,复试录取成绩,录取总评成绩等重要信息。以下是我们整理收集到的各学院复试录取名单汇总&…

ugui unity 取消选择_UGUI中几种不规则按钮的实现方式

前言UGUI中的按钮默认是矩形的,若要实现非矩形按钮该怎么做呢?比如这样的按钮:本文将介绍两种实现方式供大家选择。使用alphaHitTestMinimumThresholdImage类的alphaHitTestMinimumThreshold是一个浮点值,Raycast检测时只有图片中…

你的专业 VS 你妈口中你的专业

亲妈认证★英语语言文学我妈:她就是一个学英语的~我同学:你学英语的啊?那你看美剧不用看字幕的吧?你听英文歌都听得懂的吧?这个怎么翻译啊?这上面写的什么?你不是专八吗?哈喽~ 在吗&…

反射 + 抽象工厂模式切换不同的实现方法

概述工厂模式(Abstract Factory)定义 :提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其…

计算机应用乘法,计算机系统原理(十) 二进制整数的乘法运算和除法运算

2.5我们着重介绍了二进制整数的加、减运算,本次我们继续介绍乘、除运算。本章是迄今为止最难的一章,希望各位猿友有所收获,也别忘了“点个推荐哦”。引言运算一直是程序运行当中一个重要的环节,而在二进制的运算过程当中&#xff…

3 年工作经验程序员应有的技能

前言因为和同事有约定再加上LZ自己也喜欢做完一件事之后进行总结,因此有了这篇文章。这篇文章大部分内容都是面向整个程序员群体的,当然因为LZ本身是做Java开发的,因此有一部分内容也是专门面向咱们Java程序员的。第二阶段:五年五…

应急响应中的溯源方法

在发现有入侵者后,快速由守转攻,进行精准地溯源反制,收集攻击路径和攻击者身份信息,勾勒出完整的攻击者画像。 对内溯源与对内溯源 对内溯源:确认攻击者的行为 ,分析日志 数据包等; 对外溯源&…

POP3口令扫描案例

通过本案例可以学到: (1)了解POP3有关知识(2)利用Hscan工具软件来破解POP3账号和口令现在很多邮箱服务器都支持POP3功能,通过POP3来收取信件,收取信件时仅仅需要提供用户名和密码。目前有很多工具可以扫描POP3邮件账号和口令,本案…

中connect怎么用_烘焙中的各种酒,到底该怎么用?

​在烘焙食谱中,经常会出现“酒”这样材料。烘焙中的酒,仿佛是个神秘的存在,品种也繁多得让人一脸懵逼,朗姆酒是干嘛用的?怎么还有分白朗姆和金朗姆?和利口酒有什么区别?利口酒和力娇酒是同一个…

QQ旋风爆缓冲区溢出漏洞

据金山毒霸安全实验室5月7日透露,金山毒霸安全实验室研究人员进行例行漏洞检查过程中,发现QQ旋风存在一鲜为人知的缓冲区溢出0day漏洞,***者可以利用该漏洞制造恶意URL,使用IE6,7内核的各种浏览器均会受此漏洞的影响。…