之前一直想,在命令行下能不能运行PHP程序,像C语言一样可以通过命令行拿到参数。今天尝试了一下发现可感觉挺有意思的,平时写着程序玩的时候就可以这样用,下面让咱么来看看怎么做的。

我的环境是 php5.6
一、PHP CLI模式
什么是CLI ? 是PHP自4.3版本之后提供的CLI SAPI 叫CLI(Command Line Interface),主要用于PHP外壳应用的开发。说白了就是支持命令行下解析PHP代码。外壳应用可以理解为提供命令行界面的解析器。比如Linux下的shell等。从PHP5之后PHP的发行包中CLI的执行文件是php.exe,CGI版本的是php-cgi.exe,并且其中附带一个php-win.exe的文件,其相当于CLI版本,其不输出任何信息。其实配置window下环境变量主要就是这几个文件。
二、命令下执行PHP程序
要在命令行下运行PHP程序,可以不需要设置window,直接执行类似下面这样的命令即可:
   
F:\XAMPP\php\php.exe -f "F:\XAMPP\htdocs\test.php" -- -arg1 -arg2

前半部分是php.exe所在的位置, -f 是选项 后面接要执行php文件的路径  -arg1  -arg2是所带的参数。每次这样做感觉很麻烦所以查阅相关资料找到了别的方法,感觉这种方法很方便,下面让我们来看看。
我们只需要做下面几个步骤:
    1、 在环境变量里面加入php.exe ,php-win.exe 或 php-cli.exe的路径
2、将.PHP后缀添加到PATHTEXT中
3、将.PHP后缀关联成一种文件类型,用下面的命令执行
   
assoc .php=phpfile

4、将phpfile类型的文件关联到相关的可执行程序即可,用下面的命令执行
  
ftype phpfile="F:\XAMPP\PHP\php.exe" -f "%1" -- %~2
这样就可以直接不加php.exe文件所在路径和php文件的后缀直接执行了。其中可能遇到杀毒软件修改注册表的提示,直接全部允许就好。
可能会有疑问,这样我们如何在PHP代码中拿到命令行中的参数,其实参数在$_SERVER中就可有:
在命令行下输入:
   
demo_cli.php 123456789

这条命令的意思是执行 demo_cli . php参数是123456789;接下来我们来打印输出看看 $_SERVER的内容(只显示部分内容):
   
'argv' =>
array(2) {
[0] =>
string(49) "F:\XAMPP\htdocs\
[1] =>
string(9) "123456789"
}
'argc' =>
int(2)

可以看到argv中有我们想要的参数值,直接拿取即可。
三、总结
其实PHP中有很多有意思的东西,需要发现寻找,PHP是很有意思的。
参考: http://php.net/manual/zh/install.windows.commandline.php

windows下使用命令行运行PHP相关推荐

  1. [js]windows下通过命令行运行javascript脚本,支持命令行参数

    windows下通过命令行运行javascript脚本,支持命令行参数 js作为最受欢迎的语言,以其方便.通用.功能强大的特点,可以给大家在实际使用的过程中带来很大的便利. 下面是本文从实际应用的角度 ...

  2. windows下php命令行模式错误信息

    windows下php命令行模式遇错误一闪而过自动关闭窗口,无法看清报错内容.此时,可手动开启一个窗口,然后运行相关代码即可. 转载于:https://www.cnblogs.com/shanhesh ...

  3. windows下 cl: 命令行 error D8021 :无效的数值参数“/Wno-cpp”的解决办法

    Mask R-CNN学习(三):windows下 cl: 命令行 error D8021 :无效的数值参数"/Wno-cpp"的解决办法 2018年07月20日 11:11:06 ...

  4. windows下cmd命令行显示UTF8字符设置(CHCP命令)

    点我进入原文 windows下cmd命令行显示UTF8字符设置(CHCP命令) 在中文Windows系统中,如果一个文本文件是UTF-8编码的,那么在CMD.exe命令行窗口(所谓的DOS窗口)中不能 ...

  5. windows下的命令行工具babun

    Babun 可以直接在winodows下面编译linux代码 但是本人只成功编译过个个go的linux 和 C的linux,C++的编译不出来东西 安装很简单,下下来,直接双击批处理 install ...

  6. Windows下用命令行查找文件for命令的运用

    <Windows下for命令查找文件> 可以在cmd下敲入如下命令了解for用法: for   /? 如要查找 "d:\下的jpg文件,命令如下: for /r d:\ %i i ...

  7. 【FFmpeg】Windows 搭建 FFmpeg 命令行运行环境

    文章目录 前言 一.下载 FFMPEG 二.拷贝可执行文件 三.拷贝动态库文件 四.运行 ffmpeg 命令 总结 前言 Android 中需要使用到 FFMPEG , 先在 Windows 中搭建一 ...

  8. Windows下用命令行导出导入MySQL数据库

    方法1:添加"系统环境变量".我的电脑>属性>高级>环境变量,在"系统变量"栏目下找到 path 双击编辑.先添加:(分号),再添加MySQL ...

  9. mac php命令行模式,phpstorm分别在Mac和Windows下启动命令行,并启用ssh

    Mac:在terminal下运行 sudo -i 输入密码  就可以用ssh IP:端口  命令行登录了 DAssist是一个命令行开发辅助,可直接在系统命令行工具中使用,Linux和MacOS等自带 ...

最新文章

  1. python函数模块概念_python中模块和包的概念
  2. 【Python】Numpy库之符号函数sign()的介绍及用法
  3. 读取带空格字符串小结
  4. 安卓总线传输协议常用关键词
  5. python中socket模块常用吗_python中socket模块详解
  6. VR创业公司Pico被字节跳动收购
  7. BZOJ:4820: [Sdoi2017]硬币游戏BZOJ:1444: [Jsoi2009]有趣的游戏(高斯消元求概率)
  8. html5发光动态效果图,一款带有发光动画的HTML5表单
  9. 大赛响锣、Call 你来战……对面的开发者看过来!
  10. 【转】Sql递归查询
  11. openstack RC文件的使用
  12. RocketDock 安装
  13. 3DMAX 的重要知识和插件介绍
  14. chrome open axure 自动跳转到axure插件
  15. java解压zip和rar文件
  16. java设置excel整列格式,poi excel设置列格式方法添加
  17. 实验2《词法分析程序设计与实现》(C语言版)
  18. win7计算机里不显示摄像头,win7系统不显示摄像头的解决方法
  19. 观点 | 以太坊:货币的互联网
  20. Python调用Rasa API服务进行连续对话

热门文章

  1. Redis内存空间简单分析
  2. 网络基础应用层--HTTP协议
  3. 攻防世界web新手区合集
  4. Cycript基本语法与使用-iOS逆向工程
  5. js的event详解
  6. 直播预告 | openGauss自治运维能力的技术演进分享
  7. html5通用兄第选择器,css 通用兄弟选择器( ~ )
  8. c语言单链表删除倒数第k个数,在单链表中删除倒数第k个节点
  9. Redis的下载安装运行
  10. x²-dy²=-1有多少整数解?近30年无人解开的数学难题有答案了