前言

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文件中的函数详解相关推荐

  1. mysql5.7.11 linux_CentOS 7 中以命令行方式安装 MySQL 5.7.11 for Linux Generic 二进制版本教程详解...

    MySQL 目前的最新版本是 5.7.11,在 Linux 下提供特定发行版安装包(如 .rpm)以及二进制通用版安装包(.tar.gz).一般情况下,很多项目都倾向于采用二进制通用安装包形式来进行安 ...

  2. python 执行shell命令行效率提升_在python脚本中执行shell命令的方法

    使用Python处理一个shell命令或一个执行一个shell脚本,一般情况下,有以下三种方法,以下我们来看: 第一种方法是使用os.system的方法 os.system(" cmd&qu ...

  3. 登陆linux主机提示all,修改 linux 的命令行提示符PS1-限制IP通过SSH登陆linux服务器-linux下系统服务详解_169IT.COM...

    很多朋友可能对windows下的服务比较了解,但对于linux下的系统服务(守护进程)可能有些陌生. 这里收集了57个linux下的系统服务的详细解释,供大家学习参考. 1. NetworkManag ...

  4. CMD是什么?(命令行提示符)如何使用python在windows上操作CMD?(python执行命令行)os.syste[m](执行的命令)、os.popen(执行的命令)

    文章目录 cmd是什么 python操作cmd 方法1: 方法2: 20200309 cmd是什么 cmd是command的缩写.即命令提示行(CMD),是在OS / 2 , Win为基础的操作系统( ...

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

    前言 python调用php代码实现思路:php文件可通过在terminal中使用php命令行进行调用,因此可使用python开启子进程执行命令行代码.函数所需的参数可通过命令行传递. 测试环境 1. ...

  6. python 命令行 模块_深入浅析Python 命令行模块 Click

    Click 是用 Python 写的一个第三方模块,用于快速创建命令行.我们知道,Python 内置了一个 Argparse 的标准库用于创建命令行,但使用起来有些繁琐,Click 相比于 Argpa ...

  7. python自动化办公模块有哪些-python常见的命令行交互自动化模块有哪些

    用Python写的程序,保存为.py,添加什么命令才能使我一般都是在后面加一个输入语句. python可不可以采用非命令行方式 可以,预先写好代码 使用pythonw.exe执行py文件可以不打开黑框 ...

  8. 将你的 Python 脚本转换为命令行程序

    使用 Python 中的 scaffold 和 click 库,你可以将一个简单的实用程序升级为一个成熟的命令行界面工具. 在我的职业生涯中,我写过.用过和看到过很多随意的脚本.一些人需要半自动化完成 ...

  9. Python教程:命令行参数处理

    sys模块 sys模块代表了Python解释器,主要用于获取和Python解释器相关的信息,其中 sys.argv 可以获取命令行参数 在Python交互式解释器中可以先导入sys模块 import ...

最新文章

  1. linux从指定网卡scp文件出去,Linux下nc或scp命令来实现文件传输
  2. Smartform中负号提前解决方法
  3. 使用iis发布wcf服务
  4. SpringBoot的端口配置server.port没办法设置成Linux的环境变量
  5. 伯克利计算机科学录取率,Berkeley的CS「加州大学伯克利分校计算机科学系」
  6. 使用SQL Server连接xml接口,读取并解析数据
  7. P7920-[Kubic]Permutation
  8. pip国内加载速度慢解决方法
  9. STL中empty()函数的误用
  10. django url 生效_django 定制管理页面外观 模板文件不生效的解决方法
  11. 计算机描绘的基因结构图,利用IBS软件画基因mRNA的结构图
  12. 解决手机浏览器顶部下拉出现网页源或刷新的问题
  13. dos命令怎样进入计算机,怎么进DOS命令的方法
  14. 基于matlab的模糊PID控制仿真
  15. php字符串完全匹配,php之字符串和正则匹配
  16. php file get contents 总是超时,file_get_contents超时问题及解决方案
  17. mysql连接超时的原因_数据库提示连接超时是什么原因?
  18. 2021qq匿名说说在哪里
  19. taro 项目中接入EChart图表库
  20. 邮编查询经纬度_从经纬度查找邮政编码

热门文章

  1. ph值图片_螃蟹养殖大数据——高温季节的pH值过高,不适宜养殖螃蟹?未必
  2. 季节前面为什么用in_英语语法大全,用这16首歌诀记高效又有趣!
  3. python canvas画弧度_只要十分钟,python绘图神器turtle了解一下?
  4. 使用lucce分词怎么_真小叮当深度学习:自然语言处理(三)文本处理之分词专题...
  5. c语言精炼pdf,发计算机二级C语言多年精炼笔试试卷.pdf
  6. 【大牛系列教学】java商城推荐算法
  7. python【力扣LeetCode算法题库】100-相同的树
  8. python【蓝桥杯vip练习题库】BASIC-27 2n皇后问题(八皇后问题 搜索)
  9. Tensorflow【实战Google深度学习框架】—使用 TensorFlow 实现模型
  10. Imagenet VGG-19网络加载和特征可视化