前言

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_python如何调用php文件中的函数详解相关推荐

  1. python调用php命令行,python调用php函数 python怎样调用php文件中的函数详解

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

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

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

  3. python中文件读写--open函数详解

    python中open函数详解 在python中文件的读取分为三步走: 读:打开文件 -> 读文件 -> 关闭文件 (有点像把大象放进冰箱需要几步?的问题) 1.open函数 open函数 ...

  4. FLV文件中VideoPacket的详解

    FLV文件中VideoPacket的详解 众所周知,FLV文件体主要有三种Tag组成:AUDIODATA.VIDEODATA和SCRIPTDATA,其中SCRIPTDATA中包含了MetaData,通 ...

  5. NT的BOOT.INI文件中ARC命名详解(转)

    NT的BOOT.INI文件中ARC命名详解(转)[@more@] ARC命名是Windows NT系统用来定位其引导分区所在的路径,也就是利用它指明引导分区在哪一个磁盘控制器,哪一个硬盘,哪一个分区内 ...

  6. Linux中fork()函数详解

    Linux中fork()函数详解 一.fork入门知识 一个进程,包括代码.数据和分配给进程的资源.fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事, ...

  7. linux 中 sigaction 函数详解

    linux 中 sigaction 函数详解 一.函数原型 sigaction 函数的功能是检查或修改与指定信号相关联的处理动作(可同时两种操作) int sigaction(int signum, ...

  8. c++ memset 语言_C/C++ 中memset() 函数详解及其作用介绍

    memset 函数是内存赋值函数,用来给某一块内存空间进行赋值的: 包含在头文件中,可以用它对一片内存空间逐字节进行初始化: 原型为 : void *memset(void *s, int v, si ...

  9. Matlab中 pdist 函数详解

    学习笔记,仅供参考,有错必纠 转载自:Matlab中 pdist 函数详解(各种距离的生成); pdist Pairwise distance between pairs of objects. Sy ...

最新文章

  1. GT Transceiver中的重要时钟及其关系(2)单个外部参考时钟使用模型
  2. 面向对象之内置方法(简单)、组合。以及接口归一化设计与抽象类
  3. C# WinForm源码收集
  4. 关于UC、火狐、谷歌浏览器屏蔽布局中广告的解决办法
  5. mysql 5.6.34.rpm_离线安装mysql5.6及依赖_centos7离线安装mysql5.6.34
  6. 三、糖醋鲤鱼(Sweet and sour carp)
  7. 获取整数的位数_从NMEA0183到GNSS定位数据获取(二)软件篇
  8. 个人理财助手2009 V2.4
  9. css html 方格,使用CSS创建方格背景
  10. 正则-Strip函数
  11. python 创建工具包_使用Python工具建立网站
  12. 《信息系统项目管理师教程》目录
  13. python学习笔记7-读取pdf并输出到excel
  14. 100个经典C语言程序(益智类问题)
  15. eyoucms分页通用css样式
  16. android游戏和ios游戏哪个多,从2019年3月开始的5款最佳Android和iOS游戏
  17. MyBatis一对多关系映射
  18. 如何用好示波器?资深工程师也会忽略这些细节……
  19. 【html+css+js】用前端做一个视频播放器页面
  20. python伪原创工具开发_在线伪原创工具www.bolewei.com的开发过程

热门文章

  1. 绝地求生刺激战场服务器维护时间,绝地求生刺激战场健康系统时间介绍 未成年健康时间...
  2. Nginx gzip的配置和校验
  3. 三、镜头的选型(下)
  4. Winform中打印 dataGridView里的内容
  5. 状态模式,靠着这份190页的面试资料
  6. Android编程:底部弹出输入框
  7. android 4.0 打开gps,Android获取定位权限,手动打开GPS
  8. 《小狗钱钱》--chapter9.10.11--有了目标后生活充实了起来
  9. 快速启动工具Rulers 3.6
  10. 贵阳大数据草根创新赛启动