php exec 命令,概述PHP命令行shell_exec()使用
PHP经过长时间的发展,很多用户都很了解PHP了,这里我发表一下个人理解,和大家讨论讨论PHP命令行。PHP Command Line Interface (CLI) Server Application Programming Interface (SAPI) 在 PHP V4.2.0 开始发布,用于试验目的。到 V4.3.0 时,已经受到完整支持并且默认启用。
shell_exec()
shell_exec() 命令行实际上仅是反撇号 (`) 操作符的变体。如果您编写过 shell 或 Perl 脚本,您就知道可以在反撇号操作符内部捕捉其他命令的输出。例如,清单 1 显示了如何使用反撇号在当前目录中获取每个文本(.txt)的单词计数。
PHP命令行概述
清单 1. 使用反撇号计算单词数量#! /bin/sh
number_of_words=`wc -w *.txt`
echo $number_of_words
#result would be something like:
#165 readme.txt 388 results.txt 588 summary.txt
#and so on....
在您的 PHP 脚本中,您可以在 shell_exec() 中运行这个简单的命令,如清单 2 所示,并获取想要的结果。这里假设在同一个目录下有一些文本文件。
清单 2. 在 shell_exec() 中运行相同的命令<?php
$results=shell_exec('wc -w *.txt');
echo $results;
?>
注意,仅使用后撇号操作符也会得到相同的结果,如下所示。
清单 3. 仅使用后撇号操作符<?php
$results= `wc -w *.txt`;
echo $results;
?>
清单 4. 更加简单的方法<?php
echo `wc -w *.txt`;
?>
通过 UNIX 命令行和 shell 脚本能够完成很多东西,知道这点很重要。例如,您可以使用竖线将命令连接起来。您甚至可以使用操作符在其中创建 shell 脚本,并且仅调用 shell 脚本(根据需要使用或不使用参数)。例如,如果您仅希望计算该目录下的前 5 个文本文件的单词数,那么可以使用竖线 (|) 将 wc 和 head 命令连接起来。另外,您还可以将输出结果放到 pre 标记内部,让它能够更美观地呈现在 Web 浏览器中,如下所示。
清单 5. 更加复杂的 shell 命令<?php
$results=shell_exec('wc -w *.txt | head -5');
echo "
".$results . "
";
?>
在本文的后面部分,您将学习如何使用 PHP 为这些脚本传递参数。现在您可以将它看作运行 shell 命令的一种方法,但要记住您只能看到标准输出。如果命令或脚本出现错误,您将看不到标准的错误 (stderr),除非您通过竖线将它添加到 stdout。
【责任编辑:姜程程 TEL:(010)68476606】
点赞 0
php exec 命令,概述PHP命令行shell_exec()使用相关推荐
- linux 中gcc运行命令,Linux gcc命令的具体使用
01. 命令概述 gcc命令使用GNU推出的基于C/C++的编译器,是开放源代码领域应用最广泛的编译器,具有功能强大,编译代码支持性能优化等特点. gcc是GNU编译器套件(GNU Compiler ...
- linux命令——帮助相关命令
linux命令--帮助相关命令 文章目录 linux命令--帮助相关命令 1.man命令 命令概述: 使用语法: 参数用法: 参考示例: man命令帮助信息的结构以及意义 man命令中常用按键以及用途 ...
- Go 学习笔记(43)— Go 标准库之 os/exec(执行外部命令、非阻塞等待、阻塞等待、命令输出)
1. 概述 golang 下的 os/exec 包执行外部命令包执行外部命令.它包装了 os.StartProcess 函数以便更容易的修正输入和输出,使用管道连接I/O,以及作其它的一些调整. 与 ...
- Linux学习之第二课时--linux命令格式及命令概述
命令概述 Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘管理,文件存取,目录操作,进程管理,文件权限设定等 Linux命令格式 Linux命令的组成部分:命令字 命令选项参数( ...
- sql+php修改mysql结构,MSSQL_修改SQL-SERVER数据库表结构的SQL命令附sql命令行修改数据库,具体不废话了,请看下文代码 - phpStudy...
修改SQL-SERVER数据库表结构的SQL命令附sql命令行修改数据库 具体不废话了,请看下文代码详细说明吧. 向表中增加一个 varchar 列: ALTER TABLE distributors ...
- 命令行处理器命令_使用命令行处理器
命令行处理器命令 在你开始前 DB2 JSON可用于Linux,UNIX和Windows 10.5的DB2以及用于z / OS V3.1的IBM DB2 Accessories Suite来与DB2 ...
- GIT概述、命令操作
这里写目录标题 01.GIT概述 02.GIT相关概念 03.GIT下载与安装 04.GIT本地操作-初始化工作区 05.GIT本地操作-add与commit 06.GIT本地操作 小结 07.GIT ...
- Linux基础——“ shell命令 概述”了解shell和基本linux
文章目录 一.shell 命令 1. shell 概述 2. 基本系统维护命令 3. 查看文件系统信息 二.Linux 的用户管理 三.Linux进程管理相关命令 3.1 进程的概念 3.2 进程管理 ...
- Django源码分析10:makemigrations命令概述
django源码分析 本文环境python3.5.2,django1.10.x系列 django源码分析-makemigrations命令概述 Django项目中的数据库管理命令就是通过makemig ...
- ffmpeg 命令_ffmpeg常用命令行集锦
在实际工作中,通常需要ffmpeg作为工具来验证一个问题,比如播放一个视频,提取一个码流,转码视频,转封格式等,用的时候才发现忘记了相关命令,Google一番花老大的力气才找到自己需要的命令行.本文总 ...
最新文章
- 错误:Parameter ‘0‘ not found.Available parameters are [arg1, arg0, param1, param2]的解决方法
- html导航去下划线,纯CSS实现导航栏下划线跟随的示例代码
- Mvc示例代码调试之一----调试工具及设置(用firebug与vs联合调试)
- CALayer与UIBezierPath
- 8 旋转数组的最小数字
- Flex builder3与eclipse整合 转载
- 【LeetCode笔记】33. 搜索螺旋排序数组(Java、二分)
- linux挂载目录到分区,Ubuntu7.10下挂载/home目录到一个分区的方法
- BCNF/3NF的判断方法
- 计算机系统-x86架构下的寄存器与寻址
- 【CCCC】L2-007 家庭房产 (25分),并查集,结构统计
- python定时重新初始化类_如何重新初始化类对象
- oracle优先顺序取值,oracle取值函数
- 阿里研究院安筱鹏:数字化,转型与原生并行
- SAP动态下载数据库表数据至EXCEL
- Java 操作Word书签(二):添加文本、图片、表格到书签内容
- 一文理解主数据和参考数据
- 测试属性4 –准确性
- 肿瘤精准细胞免疫治疗:梦想照进现实
- 零基础CSS入门教程(22)–溢出
热门文章
- 机器学习中的数学——距离定义(二十四):F-散度(F-Divergence)
- Springboot 整合Rabbit MQ
- java读取.doc文件
- matlab ext2int,PF_MATLAB_new 一个非常不错的粒子滤波工具箱,基于面向对象的思 实 实现非线性 ,包 238万源代码下载- www.pudn.com...
- flutter 屏幕截图,超出屏幕部分截图
- Android使用百度大脑EasyDL识别交通标志物
- leetcode 1175. Prime Arrangements(python)
- TypeError: parentComponent.ctx.deactivate is not a function
- 如何查看Excel文件最大行数
- BOF算法 基于SIFT+KMeans