windows下使用命令行运行PHP
之前一直想,在命令行下能不能运行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中有我们想要的参数值,直接拿取即可
作者: 小灰灰heart
链接:http://www.imooc.com/article/6433
来源:慕课网
windows下使用命令行运行PHP的更多相关文章
- windows下cmd命令行显示UTF8字符设置(CHCP命令)
本文由 www.169it.com 收集整理 在中文Windows系统中,如果一个文本文件是UTF-8编码的,那么在CMD.exe命令行窗口(所谓的DOS窗口)中不能正确显示文件中的内容.在默认情况下 ...
- windows下的命令行工具babun
什么是babun babun是windows上的一个第三方shell,在这个shell上面你可以使用几乎所有linux,unix上面的命令,他几乎可以取代windows的shell.用官方的题目说就是 ...
- 几款比较好用的C语言的集成开发环境及在windows下用命令行编译C代码
最近要用到C,所以尝试了这几款windows平台下比较好的IDE. VS2015:比较复杂和庞大,据说从2013版本开始支持C99标准. C-free:轻巧,但是不支持C99. vc++6.0:很多学 ...
- Windows下的命令行终端 cmder
Windows下有很多比系统自带的cmd或者PowerShell好用的命令行工具,cmder是最为推荐的一款. 1.从cmder官网直接下载,一般下载full版本,下载完成后解压文件到自己指定的目录, ...
- phpstorm分别在Mac和Windows下启动命令行,并启用ssh
Mac:在terminal下运行 sudo -i 输入密码 就可以用ssh IP:端口 命令行登录了 DAssist是一个命令行开发辅助,可直接在系统命令行工具中使用,Linux和MacOS等自带 ...
- 让 windows 下的命令行程序 cmd.exe 用起来更顺手
在 Windows 下使用 Larave 框架做开发,从 Composer 到 artisan 总是避免不了和 cmd.exe 打交道,系统默认的命令行界面却是不怎么好看,且每行显示的字符数是做了限制 ...
- 在Windows下通过命令行或者.bat文件统计一个目录中文件数量
在Windows下面怎样通过命令行统计一个目录中文件的数量,或者说,如果在一个.bat文件中,统计一个目录中的文件数量? 我原来以为是不可能的,要编一个vbs程序什么的,后来到网上找了下,发现还真是可 ...
- Windows下SVN命令行工具使用详解
根据我的记忆,似乎Windows 7下自自带一个svn命令行工具.如果你的机器没有,不必担心.你可以从http://subversion.tigris.org获 取subversion for win ...
- Windows下dos命令行
Dos命令--基本命令 1.求助命令 例如:del /? rd /? 2.基本常用命令 例如:dir :列出当前目录下的文件以及文件夹,后面可以接其他路径 md:创建目录(mkdir),一次创建多级目 ...
随机推荐
- Spring Boot下的lombok安装以及使用简介
引言:lombok是一套代码模板解决方案,将极大提升开发的效率,这里介绍给大家使用. 1. Lombok lombok是一个可以通过简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 Java ...
- 【Redis】事务
在Redis中,事务是以multi/exec/discard进行的, 其中multi表示事务的开始, exec表示事务的执行,discard表示丢弃事务. > multi # 事务的开始 OK ...
- JMeter TCP性能测试
jmeter是一款纯java的性能测试工具,跨平台运行方便.提供图形化界面设置.简单易用. 在性能测试方法论中,很典型的方法就是二八原则,量化业务需求. 二八原则:指80%的业务量在20%的时 ...
- python threading acquire release
线程同步 //test.py import threading import time exitFlag = 0 class myThread (threading.Thread): def __in ...
- js 检查文件格式和文件大小
之前有个工作需要用到js检查文件大小和文件格式,网上查了下有个兄弟写的不错,拿过来就能直接用,感谢他顺便记录下.原始文章地址http://www.jb51.net/article/43498.htm ...
- python对字典及列表递归排序
对字典内所有内容进行排升序排序,包括,子数组,子字典 需要注意: 1.字典因为是在一定程序上无序的,所以这里采用了内置包,来变成有序字典 from collections import Ordered ...
- 树结构控件实例 TreeControl
树结构控件实例 书:157 <?xml version="1.0" encoding="utf-8"?> <s:Application xml ...
- jdk8新特性-亮瞎眼的lambda表达式
jdk8之前,尤其是在写GUI程序的事件监听的时候,各种的匿名内部类,大把大把拖沓的代码,程序毫无美感可言!既然Java中一切皆为对象,那么,就类似于某些动态语言一样,函数也可以当成是对象啊!代码块也 ...
- [ Deep Learning ] Keras & TensorFlow安装依赖包
OS:Mac Python:3.6 一.先安装Keras,再安装TensorFlow 1. 安装Keras Package Version---------- -------h5py 2.7.1 Ke ...
- ruby中的alias和alias_method
ruby中的alias和alias_method都可以重命名一个方法,它们的区别如下: 1.alias是ruby的一个关键字,因此使用的时候是alias :newname :oldname alias ...