python调用php命令行,python调用php函数 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函数 python怎样调用php文件中的函数详解相关推荐
- mysql5.7.11 linux_CentOS 7 中以命令行方式安装 MySQL 5.7.11 for Linux Generic 二进制版本教程详解...
MySQL 目前的最新版本是 5.7.11,在 Linux 下提供特定发行版安装包(如 .rpm)以及二进制通用版安装包(.tar.gz).一般情况下,很多项目都倾向于采用二进制通用安装包形式来进行安 ...
- python 执行shell命令行效率提升_在python脚本中执行shell命令的方法
使用Python处理一个shell命令或一个执行一个shell脚本,一般情况下,有以下三种方法,以下我们来看: 第一种方法是使用os.system的方法 os.system(" cmd&qu ...
- 登陆linux主机提示all,修改 linux 的命令行提示符PS1-限制IP通过SSH登陆linux服务器-linux下系统服务详解_169IT.COM...
很多朋友可能对windows下的服务比较了解,但对于linux下的系统服务(守护进程)可能有些陌生. 这里收集了57个linux下的系统服务的详细解释,供大家学习参考. 1. NetworkManag ...
- CMD是什么?(命令行提示符)如何使用python在windows上操作CMD?(python执行命令行)os.syste[m](执行的命令)、os.popen(执行的命令)
文章目录 cmd是什么 python操作cmd 方法1: 方法2: 20200309 cmd是什么 cmd是command的缩写.即命令提示行(CMD),是在OS / 2 , Win为基础的操作系统( ...
- python echo函数_python如何调用php文件中的函数详解
前言 python调用php代码实现思路:php文件可通过在terminal中使用php命令行进行调用,因此可使用python开启子进程执行命令行代码.函数所需的参数可通过命令行传递. 测试环境 1. ...
- python 命令行 模块_深入浅析Python 命令行模块 Click
Click 是用 Python 写的一个第三方模块,用于快速创建命令行.我们知道,Python 内置了一个 Argparse 的标准库用于创建命令行,但使用起来有些繁琐,Click 相比于 Argpa ...
- python自动化办公模块有哪些-python常见的命令行交互自动化模块有哪些
用Python写的程序,保存为.py,添加什么命令才能使我一般都是在后面加一个输入语句. python可不可以采用非命令行方式 可以,预先写好代码 使用pythonw.exe执行py文件可以不打开黑框 ...
- 将你的 Python 脚本转换为命令行程序
使用 Python 中的 scaffold 和 click 库,你可以将一个简单的实用程序升级为一个成熟的命令行界面工具. 在我的职业生涯中,我写过.用过和看到过很多随意的脚本.一些人需要半自动化完成 ...
- Python教程:命令行参数处理
sys模块 sys模块代表了Python解释器,主要用于获取和Python解释器相关的信息,其中 sys.argv 可以获取命令行参数 在Python交互式解释器中可以先导入sys模块 import ...
最新文章
- linux从指定网卡scp文件出去,Linux下nc或scp命令来实现文件传输
- Smartform中负号提前解决方法
- 使用iis发布wcf服务
- SpringBoot的端口配置server.port没办法设置成Linux的环境变量
- 伯克利计算机科学录取率,Berkeley的CS「加州大学伯克利分校计算机科学系」
- 使用SQL Server连接xml接口,读取并解析数据
- P7920-[Kubic]Permutation
- pip国内加载速度慢解决方法
- STL中empty()函数的误用
- django url 生效_django 定制管理页面外观 模板文件不生效的解决方法
- 计算机描绘的基因结构图,利用IBS软件画基因mRNA的结构图
- 解决手机浏览器顶部下拉出现网页源或刷新的问题
- dos命令怎样进入计算机,怎么进DOS命令的方法
- 基于matlab的模糊PID控制仿真
- php字符串完全匹配,php之字符串和正则匹配
- php file get contents 总是超时,file_get_contents超时问题及解决方案
- mysql连接超时的原因_数据库提示连接超时是什么原因?
- 2021qq匿名说说在哪里
- taro 项目中接入EChart图表库
- 邮编查询经纬度_从经纬度查找邮政编码
热门文章
- ph值图片_螃蟹养殖大数据——高温季节的pH值过高,不适宜养殖螃蟹?未必
- 季节前面为什么用in_英语语法大全,用这16首歌诀记高效又有趣!
- python canvas画弧度_只要十分钟,python绘图神器turtle了解一下?
- 使用lucce分词怎么_真小叮当深度学习:自然语言处理(三)文本处理之分词专题...
- c语言精炼pdf,发计算机二级C语言多年精炼笔试试卷.pdf
- 【大牛系列教学】java商城推荐算法
- python【力扣LeetCode算法题库】100-相同的树
- python【蓝桥杯vip练习题库】BASIC-27 2n皇后问题(八皇后问题 搜索)
- Tensorflow【实战Google深度学习框架】—使用 TensorFlow 实现模型
- Imagenet VGG-19网络加载和特征可视化