php执行命令的函数和方法

2023-10-30

PHP提供4个专门的执行外部命令的函数:exec(), system(), passthru(), shell_exec()
1)exec()
原型: string exec ( string $command [, array &$output [, int &$return_var ]] ) 
说明: exec执行系统外部命令时不会输出结果,而是返回结果的最后一行。如果想得到结果,可以使用第二个参数,让其输出到指定的数组。此数组一个记录代表输出的一行。即如果输出结果有20行,则这个数组就有20条记录,所以如果需要反复输出调用不同系统外部命令的结果,最好在输出每一条系统外部命令结果时清空这个数组unset($output),以防混乱。第三个参数用来取得命令执行的状态码,通常执行成功都是返回0。
<?php
      exec("dir",$output);
      print_r($output);
?>
 
2)system()
原型: string system ( string $command [, int &$return_var ] ) 
说明: system和exec的区别在于,system在执行系统外部命令时,直接将结果输出到游览器,如果执行命令成功则返回true,否则返回false。第二个参数与exec第三个参数含义一样。
<?php
system("pwd");
?>
 
3)passthru()
原型: void passthru ( string $command [, int &$return_var ] ) 
说明: passthru与system的区别,passthru直接将结果输出到游览器,不返回任何值,且其可以输出二进制,比如图像数据。第二个参数可选,是状态码。
<?php
header("Content-type:image/gif");
passthru("/usr/bin/ppm2tiff   /usr/share/tk8.4/demos/images/teapot.ppm");
?>
 
4)shell_exec()
原型: string shell_exec(string $cmd)
说明: 直接执行命令$cmd
<?php
$output = shell_exec('ls -lart');
echo "<pre>$output</pre>";
?>
防超时的处理方法:
      当执行命令的返回结果非常庞大时,可以需要考虑将返回结果输出至其他文件,再另行读取文件,这样可以显著提高程序执行的效率。
如果要执行的命令要花费很长的时间,那么应该把这个命令放到系统的后台去运行。但在默认情况下,
象system()等函数要等到这个命令运行完才返回(实际上是在等命令的输出结果),
这肯定会引起PHP脚本的超时。解决的办法是把命令的输出重定向到另外一个文件或流中,如:
<?php
system("/usr/local/bin/order_proc   >   /tmp/abc "); 
?>
<?
$filename=time().".data";
exec("/app/gm/gm_center/test/hello.py > $filename",$output);
var_dump ($output);
?>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

php执行命令的函数和方法 的相关文章

  • 深度学习基础--池化--空间金字塔池化(spatial pyramid pooling,SPP)

    空间金字塔池化 spatial pyramid pooling SPP 解决的问题 先前方法 输入图片会经过裁切 Crop 或者变形缩放 Warp 这都在一定程度上导致图片信息的丢失和变形 限制了识别精确度 SPP可以输入任意大小的图片 不
  • Python - OpenCV识别条形码、二维码(已封装,拿来即用)

    此代码可识别条形码和二维码 已封装好 拿来即用 import cv2 import pyzbar pyzbar as pyzbar import numpy from PIL import Image ImageDraw ImageFont
  • Google Colab 如何使用step by step 简介

    1条消息 Colab使用 maox9629的博客 CSDN博客 colabhttps blog csdn net maox9629 article details 120757922
  • vue3搜索功能

    目录 设置数据和搜索词 创建计算属性 实现搜索功能 在Vue 3中实现搜索功能可以通过以下步骤进行 假设你已经有一个包含数据列表的组件 并且你想要在该列表中实现搜索功能 设置数据和搜索词 首先 在你的组件中定义一个用于存储数据和搜索词的变量
  • 1- OpenCV+TensorFlow 入门人工智能图像处理-课程介绍

    人工智能最火的两个方向 自然语言处理和计算机视觉 OpenCV的图像处理 TensorFlow的使用 mark 供需关系理论 有需求所以才有提供 招聘网站 图像算法两万以上 都需要的技能 OpenCV TensorFlow 人工智能时代之计
  • xss闯关详解

    文章目录 xss闯关详解 level 1 level 2 level 3 level 4 level 5 level 6 level 7 level 8 level 9 level 10 level 11 开始使用burpsuite lev
  • [xbttracker] linux 下 xbt tracker环境搭建(ubuntu)

    系统环境 Ubuntu x64 20 04 操作系统 win10 xbt源码 https github com dangwei 90 xbt 参考文档 http xbtt sourceforge net tracker 官网 注 官网 xb
  • 86篇!近3年顶会上的语义分割重磅论文

    语义分割技术在众多领域得到应用 包括 环境感知 自动驾驶 机器人导航等 随着计算机视觉领域的不断发展 语义分割技术成为从事相关学习和研究人员需要了解和掌握的技能 这次我邀请了上市公司高级算法工程师 张老师 用1个小时带大家一起去探索语义分割
  • 基于OpenCV的两种圆弧长度测量方法

    基于OpenCV的两种圆弧长度测量方法 OpenCV是广泛使用的计算机视觉库 在图像处理中 圆弧的长度是一个非常重要的参数 本文将会介绍两种基于OpenCV的圆弧长度测量方法 一种是通过弧度法测量圆弧长度 另一种则是通过插值法测量圆弧长度
  • jar包打不开怎么处理?

    第一种情况 首先win R 输入cmd打开命令行窗口 输入javac 检查一下是否有问题 正常的情况应该是下图这种 如果不是这种的 重新弄配置下你的环境变量 第二种情况 找到jdk目录下的bin文件夹 用里面的javaw打开 可以设置为默认
  • 约瑟夫问题

    约瑟夫问题 约瑟夫问题一般有两种解决方法 一种数组 一种链表 本次采用数组方式说明解决 规则 n个人围成一个圈 每个人分别标注为1 2 n 要求从1号从1开始报数 报到k的人出圈 接着下一个人又从1开始报数 如此循环 直到只剩最后一个人时
  • eclipse web项目目录结构

    按照 Java EE 规范的规定 一个典型的 Web 应用程序有四个部分 1 公开目录 2 WEB INF web xml 文件 发布描述符 必选 3 WEB INF classes 目录 编译后的 Java类文件 可选 4 WEB INF
  • Vue实现动态锚点

    前几天做项目的时候 需要实现一个动态锚点的效果 如果是传统项目 这个效果就非常简单 但是放到 Vue 中 就有两大难题 1 在没有 jQuery 的 animate 方法的情况下 如何实现平滑滚动 2 如何监听页面滚动事件 在浏览了大量文章
  • STM32串口中断卡死主循环一直进中断问题分析-2021-10-05

    在一项目中 使用STM32作为主控 程序运行一段时间后概率出现主循环卡死现象 问题分析如下 1 程序USART2不停接收并处理串口数据 波特率115200 2 主循环卡死 3 USART1中断及TIM2中断响应函数运行正常 USART1及T
  • Html中截取url参数 实现HTML间的url传值

    大家好 今天遇到一个问题 页面全是html url传值 竟然获取不到参数值 A html 登录按钮 jQuery function login click function ajax url http 10 9 80 211 8090 ia
  • vue的多层主键的通信

    div div
  • 标准化与标准计分

    其实就是衡量 含金量 的一种方法 标准计分其实就是 距离 标准差 貌似和离差很像 离差就是 距离 标准差 10 50 对于分数来说 如果与平均分的距离越大 含金量就越高呢 在组数据中 可以求分均值 中位数以及标准差了 以考试成绩为例 现在
  • 模糊算法51单片机学习应用(一)模糊化

    模糊算法51单片机学习应用 一 模糊化 最近在尝试学习模糊算法 网上查了很多材料 大多都是写原理 粗略一看好像感觉我懂了 但是真的要做的话 却完全不知道从哪里开始入手 其实 对我们首次学习使用的人来说 我们不要那些高大上的原理 我们先理解他
  • react中样式的使用(内联和外部样式表)

    1 在src中新建三个子组件分别为 Header Footer Content 2 在里面分别写入代码 建议用rcc快捷方式 Header js中代码如下 import React Component from react var Head
  • Java中哈希集(HashSet)概念,实现以及操作

    Java中HashSet的用法 1 HashSet概念 2 Java文档中HashSet的实现 3 HashSet的构造函数 3 1 HashSet 3 2 HashSet int initialCapacity 3 3 HashSet i

随机推荐

  • Ubuntu 安装 pytorch

    使用 pytorch 进行深度学习训练 这也是我不得不选择 linux 的原因 系统 ubuntu 22 04 型号 Lenovo Yoga 14sIHU 2021 集显 Irix Xe lspci grep i vga 独显 GeForc
  • diff linux文件夹patch,Linux中的版本控制---diff和patch命令

    一 构造两个用于测试的文件 hello txt world txt 二 用diff命令比较两个文本文件的差异 对这个两个文本文件执行diff 命令 并通过输出重定向 将差异保存在diff txt文件中 diff u hello txt wo
  • 使用 Docker Compose 部署 Elasticsearch + Kibana

    本篇文章主要介绍了使用 Docker Compse 部署 Elasticsearch Kibana 并整合到 Spring Boot 项目中的详细步骤 Elasticsearch Kibana 版本 7 17 0 7 的最新版本 Sprin
  • Android 语音播放Media Player

    原文地址 https developer android com guide topics media mediaplayer html viacontentresolver 语音播放 因为实习工作相关的缘故 最近在学习android语音播
  • 多个RecycleView 嵌套显示不全的情况

    场景 项目中最外层使用ScrollView 里面嵌套了recycleview recycleview中又嵌套了多个recycleview 导致部分recycleview显示不出来 app界面的结构图
  • 空间域图像增强:图像锐化/增强

    空间域图像增强 OpenCV图像锐化 增强 0 综述 1 Laplacian高通滤波算子 2 Laplacian锐化代码实践 3 USM锐化增强算法 4 USM代码实践 0 综述 图像的卷积计算除了可以完成我们前面介绍的模糊去噪 边缘检测等
  • anaconda3.6.5安装pyhive

    1 首先安装anaconda3 6 5 略 2 配置好bin下环境变量 3 来到anaconda官网 搜索需要的包 pyhive 不是anaconda前缀的也行 例如biaze pyhive https anaconda org anaco
  • Qt学习笔记

    1 Qt 音同 cute 是一个跨平台的 C 开发库 主要用来开发图形用户界面 Graphical User Interface GUI 程序 当然也可以开发不带界面的命令行 Command User Interface CUI 程序 2
  • Ubuntu 16.04出现:Problem executing scripts APT::Update

    Ubuntu 16 04出现 Problem executing scripts APT Update Post Invoke Success if usr bin test w var cache app info a e usr bin
  • unity按钮实现人物变大效果

    unity按钮实现人物变大效果 游戏里面模型变大效果的实现 如下动态图所示 点我下载 https download csdn net download weixin 43474701 71975042
  • java 通过pdf模板,生成PDF,并下载到本地

    注意 本例子是从向模板定义的变量赋值 而不是从无到有的来生成pdf 直接就能用 maven依赖
  • 精通MySQL之架构篇

    今天给大家分享的是大数据开发基础部分MySQL的第一篇 老刘讲点和别人不一样的内容 众多伙伴都知道MySQL的基础知识以及使用 但是对里面的原理知道的不多 咱们学知识只看表面绝对是不行的 所以老刘争取把MySQL的架构知识给大家讲明白 My
  • Shell编程之echo命令

    Shell 的 echo 指令与 PHP 的 echo 指令类似 都是用于字符串的输出 命令格式 echo string 您可以使用echo实现更复杂的输出格式控制 1 显示普通字符串 echo It is a test 这里的双引号完全可
  • Vue3 (computed函数,watch函数,watchEffect函数)

    1 computed函数 与vue2中computed配置功能一致 变化 需要引入 组合式的API
  • 树莓派第一讲:入门那些事(系统烧录、外设连接)

    目录 基本了解 系统烧录 连接外设 基本了解 树莓派4B是一款单板计算机 采用ARM架构处理器 配备4GB内存 Gigabit以太网口 多个USB接口 HDMI输出接口等 它具备1 5Ghz运行的64位四核处理器 最高支持以60fps速度刷
  • 因果推断 - 基础知识

    目录 因果关系之梯 因果图的路径结构 阻断 d 分离 混杂 结构因果模型 SCM 版权 转载前请联系作者获得授权 声明 部分内容出自因果关系之梯 已获得原作者授权 参考书籍 The Book of Why Judea Pearl 因果关系之
  • 什么是回调函数Callback----自己的一点理解

    何为回调函数 若把函数的指针作为函数参数传递给一个函数 当这个指着被用来调用它所指向的函数时 我们将该指针所指向的函数称为回调函数 回调函数与普通函数最大区别在于函数的调用 对普通函数而言 函数实现者可以直接拿来用 可以直接将它放在main
  • 金山逍遥网 sersync 服务器实时镜像同步方案

    金山逍遥网 sersync 服务器实时镜像同步方案 1 sersync rsync原理 2 inotify和sersync同步的区别 3 配置sersync rsync实现实时同步 2台centos7 4 一台装sersync一台装rsyn
  • 『网络安全』蜜罐到蜜网入门指南(三)蜜罐内部组成分析

    原创不易 点个赞呗 如果喜欢 关注 收藏不迷路 前言 大家好 网络安全 蜜罐到蜜网入门指南 进入第三篇 通过前面的内容 我们知道了什么是蜜罐以及蜜罐的作用和分类等 点击下方链接 可快速查看 相关文章 网络安全 蜜罐到蜜网入门指南 一 蜜罐初
  • php执行命令的函数和方法

    PHP提供4个专门的执行外部命令的函数 exec system passthru shell exec 1 exec 原型 string exec string command array output int return var 说明