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()使用相关推荐

  1. linux 中gcc运行命令,Linux gcc命令的具体使用

    01. 命令概述 gcc命令使用GNU推出的基于C/C++的编译器,是开放源代码领域应用最广泛的编译器,具有功能强大,编译代码支持性能优化等特点. gcc是GNU编译器套件(GNU Compiler ...

  2. linux命令——帮助相关命令

    linux命令--帮助相关命令 文章目录 linux命令--帮助相关命令 1.man命令 命令概述: 使用语法: 参数用法: 参考示例: man命令帮助信息的结构以及意义 man命令中常用按键以及用途 ...

  3. Go 学习笔记(43)— Go 标准库之 os/exec(执行外部命令、非阻塞等待、阻塞等待、命令输出)

    1. 概述 golang 下的 os/exec 包执行外部命令包执行外部命令.它包装了 os.StartProcess 函数以便更容易的修正输入和输出,使用管道连接I/O,以及作其它的一些调整. 与 ...

  4. Linux学习之第二课时--linux命令格式及命令概述

    命令概述 Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘管理,文件存取,目录操作,进程管理,文件权限设定等 Linux命令格式 Linux命令的组成部分:命令字   命令选项参数( ...

  5. sql+php修改mysql结构,MSSQL_修改SQL-SERVER数据库表结构的SQL命令附sql命令行修改数据库,具体不废话了,请看下文代码 - phpStudy...

    修改SQL-SERVER数据库表结构的SQL命令附sql命令行修改数据库 具体不废话了,请看下文代码详细说明吧. 向表中增加一个 varchar 列: ALTER TABLE distributors ...

  6. 命令行处理器命令_使用命令行处理器

    命令行处理器命令 在你开始前 DB2 JSON可用于Linux,UNIX和Windows 10.5的DB2以及用于z / OS V3.1的IBM DB2 Accessories Suite来与DB2 ...

  7. GIT概述、命令操作

    这里写目录标题 01.GIT概述 02.GIT相关概念 03.GIT下载与安装 04.GIT本地操作-初始化工作区 05.GIT本地操作-add与commit 06.GIT本地操作 小结 07.GIT ...

  8. Linux基础——“ shell命令 概述”了解shell和基本linux

    文章目录 一.shell 命令 1. shell 概述 2. 基本系统维护命令 3. 查看文件系统信息 二.Linux 的用户管理 三.Linux进程管理相关命令 3.1 进程的概念 3.2 进程管理 ...

  9. Django源码分析10:makemigrations命令概述

    django源码分析 本文环境python3.5.2,django1.10.x系列 django源码分析-makemigrations命令概述 Django项目中的数据库管理命令就是通过makemig ...

  10. ffmpeg 命令_ffmpeg常用命令行集锦

    在实际工作中,通常需要ffmpeg作为工具来验证一个问题,比如播放一个视频,提取一个码流,转码视频,转封格式等,用的时候才发现忘记了相关命令,Google一番花老大的力气才找到自己需要的命令行.本文总 ...

最新文章

  1. 错误:Parameter ‘0‘ not found.Available parameters are [arg1, arg0, param1, param2]的解决方法
  2. html导航去下划线,纯CSS实现导航栏下划线跟随的示例代码
  3. Mvc示例代码调试之一----调试工具及设置(用firebug与vs联合调试)
  4. CALayer与UIBezierPath
  5. 8 旋转数组的最小数字
  6. Flex builder3与eclipse整合 转载
  7. 【LeetCode笔记】33. 搜索螺旋排序数组(Java、二分)
  8. linux挂载目录到分区,Ubuntu7.10下挂载/home目录到一个分区的方法
  9. BCNF/3NF的判断方法
  10. 计算机系统-x86架构下的寄存器与寻址
  11. 【CCCC】L2-007 家庭房产 (25分),并查集,结构统计
  12. python定时重新初始化类_如何重新初始化类对象
  13. oracle优先顺序取值,oracle取值函数
  14. 阿里研究院安筱鹏:数字化,转型与原生并行
  15. SAP动态下载数据库表数据至EXCEL
  16. Java 操作Word书签(二):添加文本、图片、表格到书签内容
  17. 一文理解主数据和参考数据
  18. 测试属性4 –准确性
  19. 肿瘤精准细胞免疫治疗:梦想照进现实
  20. 零基础CSS入门教程(22)–溢出

热门文章

  1. 机器学习中的数学——距离定义(二十四):F-散度(F-Divergence)
  2. Springboot 整合Rabbit MQ
  3. java读取.doc文件
  4. matlab ext2int,PF_MATLAB_new 一个非常不错的粒子滤波工具箱,基于面向对象的思 实 实现非线性 ,包 238万源代码下载- www.pudn.com...
  5. flutter 屏幕截图,超出屏幕部分截图
  6. Android使用百度大脑EasyDL识别交通标志物
  7. leetcode 1175. Prime Arrangements(python)
  8. TypeError: parentComponent.ctx.deactivate is not a function
  9. 如何查看Excel文件最大行数
  10. BOF算法 基于SIFT+KMeans