php-cli简介(不会Shell语言一样用Shell)


Posted in PHP onJune 03, 2013

1.基础知识

1.1 什么是Shell编程?
在 Unix 中,shell 可不是简单的命令解释器(典型的有 Windows 中的 DOS ),而是一个全功能的编程环境。Shell 是操作系统的一部分,用来与用户打交道,并且可以用来协调各个命令【1】。用Shell编程可以灵活地解决大量重复任务,十分方便。但是,Shell的语法十分怪异(个人意见),不容易记,如果现在熟悉的语言可以用来写shell那就好了——比如php——就可以快速开发Shell程序了(比如我的Preminder的后台程序),于是便有了这篇文章,本文以Linux为例说明php-cli的用法,其它平台的版本类似。

1.2 什么是php-cli?
刚才说到,我们可以用php来开发Shell程序。有的同学可能会问啦:“php不是用来做网页的么?-_-”。是的,php可以用来做动态网页,并且当初php就是为做动态网页而开发的语言,但是理论上php可以用来做任何的程序,甚至是桌面程序,而php-cli是php在命令行运行的支持环境,也就是我们说的可以用来写Shell的环境支持。

php-cli是php Command Line Interface的简称,如同它名字的意思,就是php在命令行运行的接口,区别于在Web服务器上运行的php环境(php-cgi, isapi等)【2】。

也就是说,php不单可以写前台网页,它还可以用来写后台的程序。

2. 执行php-cli脚本

2.1 php-cli的语法
当然是跟php一模一样啦,因为它就是php嘛!只不过一些默认的参数与php-cgi不同,比如运行时间:php-cli默认运行时间是无穷,而网页php默认设置是30s。

2.2 执行php-cli脚本

2.2.1. 直接在终端执行php
kangzj@localhost# php -r 'print_r(get_defined_constants());'2.2.2. 运行php-cli脚本文件
kangzj@localhost# php my_script.php

kangzj@localhost# php -f my_script.php上而说的php文件就是一般的php文件没有什么不同。还有一种方式,就是在文件中指令解释器,就可以直接在终端以”./test.php执行脚本了”,test.php就像下面这样:

#!/usr/bin/php -q 
<?php 
echo "Hello world of PHP CLI!"; 
?>

补充:php的Shell程序并不一定以php为扩展名,可以以任意扩展名,甚至不要扩展名,只是为了清楚,我才用的php扩展名。

2.2.3. 用Cron执行php-cli脚本
cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业,周期性作业,比如备份数据,Preminder定期查询PR等等,添加的方法:打开/etc/crontab,添加:

0 13 * * * /usr/bin/php -f /home/phpscripts/phpcli.php

4. 结语
如果你会php的话,那么你也会了一种Shell编程语言!

如果你不会php,你去学php,就相当于一下子学会动态网页和Shell两种语言!并且你甚至可以用php来写具有图形界面的应用程序,Dnspod的动态域名客户端中就有一种是用php开发的。

php的易学是出名的,如果你还不会,那是在犹豫什么呢?

另外,再宣传一下我的”Preminder”——PR更新Email提醒服务~~

5. 参考文献
1.Linux Shell简介 : https://3water.com/article/37801.htm
2.PHP Command Line Interface : Mystic Unleashed :http://www.php-cli.com/
3.ch 4.2, php manual : http://www.php.net
PS:Shell命令还是要知道一些的,否则有些功能不太好实现。

PHP 相关文章推荐
复杂检索数据并分页显示的处理方法
Oct 09 PHP
PHP的FTP学习(二)
Oct 09 PHP
不错的PHP学习之php4与php5之间会穿梭一点点感悟
May 03 PHP
PHP Directory 函数的详解
Mar 07 PHP
PHP基础学习之流程控制的实现分析
Apr 28 PHP
基于php无限分类的深入理解
Jun 02 PHP
页面利用渐进式JPEG来提升用户体验度
Dec 01 PHP
PHP在同一域名下两个不同的项目做独立登录机制详解
Sep 22 PHP
PHP折半(二分)查找算法实例分析
May 12 PHP
ThinkPHP5.0框架使用build 自动生成模块操作示例
Apr 11 PHP
php使用yield对性能提升的测试实例分析
Sep 19 PHP
laravel-admin表单提交隐藏一些数据,回调时获取数据的方法
Oct 08 PHP
基于在生产环境中使用php性能测试工具xhprof的详解
Jun 03 #PHP
php cli模式学习(PHP命令行模式)
Jun 03 #PHP
获取PHP警告错误信息的解决方法
Jun 03 #PHP
php cli 小技巧
Jun 03 #PHP
php中用加号与用array_merge合并数组的区别深入分析
Jun 03 #PHP
PHP在线生成二维码代码(google api)
Jun 03 #PHP
深入探讨:Nginx 502 Bad Gateway错误的解决方法
Jun 03 #PHP
You might like
PHP原理之异常机制深入分析
2010/08/08 PHP
调整优化您的LAMP应用程序的5种简单方法
2011/06/26 PHP
PHP5.5在windows安装使用memcached服务端的方法
2014/04/16 PHP
详解WordPress开发中过滤属性以及Sql语句的函数使用
2015/12/25 PHP
针对多用户实现头像上传功能PHP代码 适用于登陆页面制作
2016/08/17 PHP
支付宝支付开发――当面付条码支付和扫码支付实例
2016/11/04 PHP
PHP pthreads v3在centos7平台下的安装与配置操作方法
2020/02/21 PHP
slice函数的用法 之不错的应用
2006/12/29 Javascript
JQuery跨Iframe选择实现代码
2010/08/19 Javascript
javascript 单例/单体模式(Singleton)
2011/04/07 Javascript
js简单抽奖代码
2015/01/16 Javascript
JavaScript中对DOM节点的访问、创建、修改、删除
2015/11/16 Javascript
Bootstrap3制作图片轮播效果
2016/05/12 Javascript
JavaScript仿聊天室聊天记录
2016/12/27 Javascript
vue使用Font Awesome的方法步骤
2019/02/26 Javascript
ElementUI radio组件选中小改造
2019/08/12 Javascript
小程序如何定位所在城市及发起周边搜索
2020/02/11 Javascript
跟老齐学Python之玩转字符串(2)更新篇
2014/09/28 Python
Python __setattr__、 __getattr__、 __delattr__、__call__用法示例
2015/03/06 Python
Linux下使用python调用top命令获得CPU利用率
2015/03/10 Python
python简单判断序列是否为空的方法
2015/06/30 Python
详解Django通用视图中的函数包装
2015/07/21 Python
Python中的正则表达式与JSON数据交换格式
2019/07/03 Python
Win10下Python3.7.3安装教程图解
2019/07/08 Python
pandas按行按列遍历Dataframe的几种方式
2019/10/23 Python
深入CSS3 动画效果的总结详解
2013/05/09 HTML / CSS
Html5页面在微信端的分享的实现方法
2018/08/30 HTML / CSS
利用canvas实现图片压缩的示例代码
2018/07/17 HTML / CSS
AmazeUI中各种的导航式菜单与解决方法
2020/08/19 HTML / CSS
廉价连衣裙和婚纱礼服在线销售:Tbdress
2019/02/28 全球购物
新西兰第一的行李箱网站:luggage.co.nz
2019/07/22 全球购物
FC-Moto英国:欧洲最大的摩托车服装和头盔商店之一
2019/08/25 全球购物
狂人日记读书笔记
2015/06/30 职场文书
如何解决php-fpm启动不了问题
2021/11/17 PHP
vue实现书本翻页动画效果实例详解
2022/04/08 Vue.js
JS前端使用canvas实现物体的点选示例
2022/08/05 Javascript