PHP执行外部程序的方法
引言
在一些特殊情况下,会使用PHP调用外部程序执行,比如:调用shell命令、shell脚本、可执行程序等等
PHP执行外部程序的方法
- system(),system函数将执行的结果直接输出
- exec():执行一个外部程序,将输出结果保存在第二个参数上
- passthru():执行外部程序并且显示原始输出
- shell_exec(),没有参数中接收返回值,而且没有执行成功的状态码
- proc_open(),会fork一个子进程,返回文件指针,但可提供双向通道
- escapeshellcmd():只是辅助作用
- escapeshellarg():只是辅助作用
这些函数的使用前提:
- PHP没有运行在安全模式,关掉安全模式,即:
safe_mode = off
- 禁用函数列表
disable_functions = exec
,system, shell_exec
,proc_open
,popen
, 如果禁用了,就关掉。
注意:执行外部程序是存在风险的,所以使用这些函数要在确保安全的情况下使用。
exec() - 执行一个外部程序
passthru() - 执行外部程序并且显示原始输出
popen() - 打开进程文件指针,fork一个子进程,返回文件指针
escapeshellcmd() - shell 元字符转义
pcntl_exec() - 在当前进程空间执行指定程序
参考:
- PHP执行外部程序的方法
- PHP在linux上执行外部命令(整理)
PHP执行外部程序的方法相关推荐
- php 运行外部程序_PHP实现执行外部程序的方法详解
这篇文章主要介绍了PHP实现执行外部程序的方法,结合实例形式分析了php执行外部程序的常用函数相关使用技巧与注意事项,需要的朋友可以参考下 本文实例讲述了PHP实现执行外部程序的方法.分享给大家供大家 ...
- php结束外部程序,PHP执行外部程序的方法
在一些特殊情况下,会使用PHP调用外部程序执行,比如:调用shell命令.shell脚本.可执行程序等等,今天在源码中了解了一下PHP执行外部程序的方法,借此机会顺便整理一下. 在源码中 exec.h ...
- PHP调用外部程序的方法解析
很多情况下需要php调用其他程序如shell命令.shell脚本.可执行程序等等,此时需要使用到诸如exec/system/popen/proc_open等函数,每种函数有各自适合使用的场景以及需要注 ...
- [笔记]Windows核心编程《番外篇》几种常见的执行命令行方法
文章目录 前言 WinExec 作用 实例 CreateProcess 作用 实例 System popen ShellExecute ShellExecute ShellExecuteEx 区别比较 ...
- 计划任务执行php文件,linux系统下添加计划任务执行php文件方法
在web开发过程中,经常需要设定一些定期执行的任务,比如商品定时上下架.我们以php文件为例,讲解linux下的计划任务. 方法/步骤 1.打开linux系统命令行界面. 在命令行界面中输入如下命令: ...
- java -version cmd_java如何运行步骤cmd?Java执行cmd命令方法有哪些?
写好一个java程序之后,我们的最终目的就是可以正确的运行程序,如果程序运行正确了,那么代码也就没有什么问题了,可是java如何运行步骤cmd?接下来,我们就来给大家讲解一下这方面的内容. 1.首先用 ...
- jquery中ajax请求后台数据成功后既不执行success也不执行error解决方法
jquery中ajax请求后台数据成功后既不执行success也不执行error解决方法 参考文章: (1)jquery中ajax请求后台数据成功后既不执行success也不执行error解决方法 ( ...
- asp.net服务器控件button先执行js再执行后台的方法
关于button这个服务器控件,我一直想减少它向服务器提交数据.那些检测,还是在客户端实现就好了. 这就需要javascript,但是我发现仅仅有javascript还是不够的.button服务器控件 ...
- 【Android 异步操作】Android 线程切换 ( 判定当前线程是否是主线程 | 子线程中执行主线程方法 | 主线程中执行子线程方法 )
文章目录 一.判定当前线程是否是主线程 二.子线程中执行主线程方法 三.主线程中执行子线程方法 一.判定当前线程是否是主线程 在 Android 中 , 如果要判定当前线程是否是主线程 , 可以使用如 ...
最新文章
- 1 元秒杀 1000+ 册爆款电子书,错过再等一年!
- spacy库的安装与使用_PythonEEG工具库MNEPython详细安装与使用
- linux日志使用方法,Linux 日志终极指南
- Python如何生成windows可执行的exe文件
- python线程间数据共享_python 进程间数据共享multiProcess.Manger实现解析
- u-boot移植随笔:困难重重,前路未知
- python render_requests-html库render的使用
- GNOME 3.20 两大新特性说明
- Unity 编辑器启动时运行自定义编辑器脚本
- 计算机控制技术数据存储器有,计算机控制技术复习资料.doc
- vfp报表打印到PDF文件中不用输入文件名
- 联想lenovo G40-70M 无线网卡白名单跳过
- linux tar命令将压缩包解压到指定位置,用tar命令把目标压缩包解压到指定位置
- 旧的华为手机刷Android9,直播mate9刷安卓10!
- 钛资本研究院:全球产业链重构下的芯片机遇
- 嵌入式linux dlna,DLNA 编译
- No discret job created in Oracle
- 每日总结(2021/12/15)
- 逻辑回归实现数字手写识别
- 同济大学的计算机保研率,同济大学2020届保研率:27.7%
热门文章
- Android全工程编译不过问题汇总
- Kettle连接Mysql数据库异常
- JS入门之Date对象
- python 程序停止打印日志_优雅停止 SpringBoot 服务,拒绝 kill -9 暴力停止!
- java 队列复制_java - 复制堆栈或队列,而无需使用“克隆” - 堆栈内存溢出
- android listview edittext 事件,Android ListView item中含有Edittext 中一些坑
- 阿里妈妈技术团队5篇论文入选 SIGIR 2022!
- php输出图片没有,ThinkPHP里无法输出图片 设置响应头
- leetcode 滴滴_一个菜逼程序媛的求职历程(秋招已拿阿里、网易、滴滴等校招offer)...
- mysql递归查询之后的排序问题_MySQL递归排序查询+树节点生成