PHP CLI模式介绍及使用教程

看看全称就知道了,php-cli是php Command Line Interface的简称,即PHP命令行接口,在windows和linux下都是支持PHP-CLI模式的,其实这两者,我以前都写过文章:

一、window在命令行下运行php 程序
二、linux使用crontab实现定时任务
PHP-CLI模式的优势及使用场合:

  • 1.完全支持多线程
  • 2.如上,可以实现定时任务
  • 3.开发桌面应用就是使用PHP-CLI和GTK包
  • 4.linux下用php编写shell脚本

其实PHP的运行环境远远不止apache和cli的,哈哈,如aolserver, apache, apache2filter, apache2handler, caudium, cgi (until PHP 5.3), cgi-fcgi, cli, continuity, embed, isapi, litespeed, milter, nsapi, phttpd, pi3web, roxen, thttpd, tux, and webjames.

你可以用php_sapi_name()去检测的,不信,看下面这段代码:

  1. <?php
  2. /** 转载请注明链接:http://www.phpddt.com */
  3. echo php_sapi_name();

我在浏览器上运行结果:
我在windows的cmd上运行:
使用标准的输入输出:

STDIN  标准输入设备

STDOUT 标准输出设备

STDERR 标准错误设备

看看运行下面这段程序的结果就知道了:

  1. <?php
  2. // ask for input
  3. fwrite(STDOUT, "Enter your name: ");
  4. // get input
  5. $name = trim(fgets(STDIN));
  6. // write input back
  7. fwrite(STDOUT, "Hello, $name!");

运行截图:
使用命令行自变量:
PHP CLI带有两个特殊的变量,专门用来达到这个目的:一个是$argv变量,它通过命令行把传递给PHP脚本的参数保存为单独的数组元素;另一个是$ argc变量,它用来保存$argv数组里元素的个数。
你可以运行:

  1. <?php
  2. /**
  3. *@link http://www.phpddt.com
  4. */
  5. print_r($argv);

看结果:
使用PHP CLI传递脚本参数的形式:
请看参数:

参数 说明
-a 交互式运行Run interactively
-c path 从path读取php的.ini文件
-n 不用读取php的.ini文件就直接运行
-m 列出经过编译的模块
-i 显示有关PHP构建的信息
-l 检查PHP脚本的句法
-s 以彩色方式显示源代码
-w 显示去掉注释之后的源代码
-h 显示帮助


至此,我对PHP CLI有了一定的认识了,如果读者想要了解更多,请参考官方手册:http://php.net/manual/zh/features.commandline.php

转载: http://www.phpddt.com/php/php-cli.html 尊重他人劳动成果就是尊重自己!

时间: 2024-08-08 11:33:03

PHP CLI模式介绍及使用教程的相关文章

PHP CLI模式开发

PHP CLI模式开发不需要任何一种Web服务器(包括Apache或MS IIS等),这样,CLI可以运行在各种场合. 有两种方法可以运行PHP CLI脚本. 第一种方法是使用php -f /path/to/yourfile.php.调用PHP CLI解释器,并给脚本传递参数.这种方法首先要设置php解释器的路径,Windows平台在运行CLI之前,需设置类似path c:\php的命令,也失去了CLI脚本第一行的意义,因此不建议使用该方法. 第二种方法是首先运行chmod+x <要运行的脚本文

Windows7中7种不同关机模式介绍

在Win7关机选项中一共有7种关闭方式,分别为 Switch user(切换用户), Log off(登出), Lock(锁定), Restart(重启), Sleep(睡眠), Hibernate(休眠), Shut down(关机). 下面分别介绍一下它们的区别: 1.Switch user, Log off, Lock Win7支持多用户登录.也就是说,用户可以以管理员或是其他用户身份同时登录.如下图:在我的系统中目前有两个用户在登陆,一个处于Active(活动)状态,一个处于Discon

忙信号模式介绍

在阅读本文前,您需要了解云计算与互联网开发基础知识.[忙信号模式]是专注应用程序对当云服务请求响应不成功时忙信号如何处理.这种模式从客户端角度出发,这里主要描述的云计算中场景.客户端是每发出请求到服务端,服务端答复忙信号.客户端负责根据忙信号做出适当数量的重试次数处理.如果重试过程中继续收到忙信号,客户端将该服务视为不可用.我们偶尔地拨号电话结果是忙信号,正常的反应需要重拨,这时通常会导致能成功建立通话. 同样,偶尔会调用服务结果被返回失败代码,表明云服务目前不能够满足该请求.需要重试,在服务端

CDN模式介绍

CDN(content delivery network 或 content distribution network)模式专注于通过全球分布式缓存架构为经常访问的文件减少网络访问时的延迟.目标是加快交付应用程序内容给用户.内容是任何可以存储在一个文件,如图像. 视频和文档.内容交付网络 (CDN) 是一种全球分布式缓存的服务.CDN 在世界各地的许多地方保存了应用程序文件的副本.当用户访问时,会选择离这些地方接近结点,内容不需要走长距离网络来传递,所以它能访问到达速度更快,以此来改善用户体验.

thinkphp3.2 cli模式的正确使用方法

最近要使用thinkphp3.2版本的cli模式,手动执的话没有问题,比如php /www/index.php home/article/get 这样没有问题,但是一般用cli模式都是定时任务比较多,这个时候写到定时任务的时候,比如 0 * * * * * php /www/index.php home/article/get 这样就会出现引入ThinkPHP.php失败的问题,这个问题算是比较容易解决的,但是后来还有其他各种报错,经过查看相关核心代码,终于找到无需修改代码,就可以轻易使用cli

php cli模式或者内置server命令行输出信息

1 /* 2 * php cli模式或者内置server命令行输出信息 3 * param fixed $data 参数可以是除了对象以外的所有数据类型,比如:字符串,数组,jason等 4 */ 5 public function console($data) { 6 7 // 中文编码处理 8 $wp = json_encode ( $data, JSON_UNESCAPED_UNICODE ); 9 10 $stdout = fopen ( 'php://stdout', 'w' ); 1

获取当前PHP运行环境是否cli模式

需要用到系统函数php_sapi_name() 或者 系统常量 PHP_SAPI,返回 cli 或 cli_server 1 /* 2 判断当前的运行环境是否是cli模式 3 */ 4 function is_cli(){ 5 return preg_match("/cli/i", php_sapi_name()) ? true : false; 6 }

虚拟主机中三种网络模式介绍

cocos2d-x升级到3.0后变化不小,除了API的变化(主要是函数和类名称变化,以及使用了C++11的不少特性,function/bind, lamda, std::thread-),创建和编译工程也做了一些简化调整.本文主要讨论一下cocos2d-x3.0 在android平台开发的环境设置及工程创建编译流程. 1.   初始设置 除了2.x所需要的python,jdk, android sdk和ndk之外,还需要部署apache-ant. 1)      在path中设置好java环境变

Spark on YARN两种运行模式介绍

本文出自:Spark on YARN两种运行模式介绍http://www.aboutyun.com/thread-12294-1-1.html(出处: about云开发)   问题导读 1.Spark在YARN中有几种模式? 2.Yarn Cluster模式,Driver程序在YARN中运行,应用的运行结果在什么地方可以查看? 3.由client向ResourceManager提交请求,并上传jar到HDFS上包含哪些步骤? 4.传递给app的参数应该通过什么来指定? 5.什么模式下最后将结果输