文档章节

深入解析PHP CLI脚本代码范例

rihgtzhao
 rihgtzhao
发布于 2014/06/21 15:32
字数 549
阅读 35
收藏 0

第一种方法是使用php -f /path/to/yourfile.php。调用PHP CLI解释器,并给脚本传递参数。这种方法首先要设置php解释器的路径,Windows平台在运行CLI之前,需设置类似path c:\php的命令,也失去了CLI脚本第一行的意义,因此不建议使用该方法。

第二种方法是首先运行chmod+x <要运行的脚本文件名>(UNIX/Linux环境),将该PHP文件置为可执行权限,然后在CLI脚本头部第一行加入声明(类似于#! /usr/bin/php或PHP CLI解释器位置),接着在命令行直接执行。这是CLI首选方法,建议采用。

下面我们来看看怎样编写PHP CLI脚本。

编写一个CLI脚本

首先创建一个名为myfile.php的PHP脚本,用于运行PHP CLI脚本。该脚本很简单,仅显示“你好 PHP CLI!”。该脚本代码如下:

#!/usr/local/bin/php –q
< ?php  

//Windows平台上,上行应该为:
#!C:\php\php.exe -q  

echo "你好 PHP CLI!";  

?> 

不要忘了给该文件设置为可执行的权限:

$ chmod 755 myfile.php

然后直接输入以下命令,按回车键即可以运行:

$ ./myfile.php

如果要在Windows系统下运行该脚本,则不需要设置文件属性,可以直接运行PHP CLI脚本。

再重申一次:如果在Windows平台,CLI脚本的第一行一定要写正确php.exe所在的位置,像这样(另外,如果要在CLI脚本中加注释语句,则要把注释写在PHP标签里面,因为CLI解释只认识第一行,不在PHP标签里认为是语法错误):

#!C:\php\php.exe -q

这样,可以看到在命令行下信息已经打印出来,证明该PHP CLI脚本已经成功运行。


本文转载自:http://developer.51cto.com/art/200912/167534.htm

共有 人打赏支持
rihgtzhao
粉丝 6
博文 38
码字总数 2307
作品 0
丰台
程序员
私信 提问
用PHP脚本删除MAC系统的.DS_Store文件

别人发给我的一个系统压缩包,估计是在MAC系统里面开发的,代码包里面有.DS_Store文件。 我粗略看了一下还蛮多的.DS_Store文件,手动删这些文件也真是简单重复的劳动。作为一个以改变世界为理...

李忠
2016/07/04
25
0
通用面向对象脚本--coos

coos通用面向对象脚本 common object-oriented scripts Script Library 是本人在大量企业级网站系统开发中和阅读大量书籍后提炼出的一个开源脚本库。 目标是提供一个跨浏览器,兼容性好,独立...

热血狂徒
2011/06/16
1K
0
getopts简易教程(Small getopts tutorial)译文

getopts简易教程 当你想用一种专业的方式解析命令行参数时,getopts就是要选择的工具。和它的旧版本兄弟命令getopt不同(注意没有s!),getopts是shell内置命令。高级地方表现在 你不需要通过一...

Feng_Yu
2015/01/31
0
0
开源平台eRedG4_V1.2版发布了

在广大网友的支持和鞭策下,eRedG4_V1.2版又登场了。 eRedG4(易道系统集成与应用开发平台)是一个开放源代码的、面向企业计算环境下异构系统集成与行业应用快速二次开发的平台。它包括:基础类...

Google
2011/05/04
3K
0
使用 Cufon 渲染网页字体

这是一篇关于 Cufon 技术的小文章。什么是 Cufon 呢?简单的说,Cufon 是一个用来替代 sIFR 框架,实现在网页中对文字字体进行渲染功能的纯 JavaScript 开源类库。 为什么要使用 Cufon 那么为...

临江若仙
2014/07/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

 SQL与NoSQL数据库入门基础知识详解

这几年的大数据热潮带动了一激活了一大批hadoop学习爱好者。有自学hadoop的,有报名培训班学习的。所有接触过hadoop的人都知道,单独搭建hadoop里每个组建都需要运行环境、修改配置文件测试等...

左手的倒影
14分钟前
3
0
Jenkinsfile

node { wrap([$class: 'BuildUser']) { def user = env.BUILD_USER_ID println user }}def InPutCheckBranch(){ timeout(time:10, unit:'SECONDS') { I......

whhbb
19分钟前
0
0
如何去设计前端框架能力?星巴克消息开放项目从0到1,从点到面的思考

本文由淘宝前端工程师罗嗣分享,主要讲述了作者在星巴克消息开放项目中的总结和思考,希望对大家有帮助,让业务分享更加有价值。 摘要 从满足星巴克项目需求单点出发,发散到从点到面的思考。...

阿里云官方博客
24分钟前
0
0
如何在多Kubernetes集群和多租户环境中使用Prometheus监控

过去十年里,我一直在虚拟化和云计算领域工作,在VMware、Mercury Interactive和Oracle领导产品管理工作,并格外关注DevOps方向。直到2014年,我开始认真关注并研究容器。当2015年Kubernete...

RancherLabs
25分钟前
0
0
如何在Chrome浏览器中启动deviceready事件(尝试调试phonegap项目)?

我正在开发PhoneGap应用程序,我希望能够在Chrome中调试它,而不是在电话上调试。但是,我在onGetReady()函数中初始化我的代码,该函数在PhoneGap触发“deviceready”事件时触发。由于Chr...

kisshua
今天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部