分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

PHP之CLI模式

发布时间:2023-09-06 01:55责任编辑:白小东关键词:PHP

转载: http://www.cnblogs.com/zcy_soft/archive/2011/12/10/2283437.html

所有的PHP发行版,不论是编译自源代码的版本还是预创建的版本,都在默认情况下带有一个PHP可执行文件。这个可执行文件可以被用来运行命令行的PHP程序。
要在你的系统上找到这个可执行文件,就要遵照下面的步骤:
        Windows :放在PHP主安装目录下,文件名是php.exe或者(在老版本的PHP里)是php-cli.exe。
        Linux : 保存在PHP安装目录的bin/子目录下。

需要注意的是CLI模式和CGI模式运行时用的PHP.INI并非同一套配置,需要单独配置。
不论是在哪一个操作系统里,你都需要对它进行测试,以保证它能够正常运行,方法是用-v参数调用它:

PHP 5.6.11 (cli) (built: Jul ?9 2015 20:55:40)Copyright (c) 1997-2015 The PHP GroupZend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies
View Code

使用CLI命令
一个简单的PHP CLI程序,命名hello.php

<?phpecho ‘hello cli‘;
View Code

现在,试着在命令行提示符下运行这个程序,方法是调用CLI可执行文件并提供脚本的文件名:

shell> /path/php.exe /example/hello.phpHello from the CLI

使用标准的输入和输出
PHP CLI会定义三个常量,以便让在命令行提示符下与解释器进行交互操作更加容易。这些常量见下表

常量说明
STDIN
标准的输入设备
STDOUT
标准的输出设备
STDERR
标准的错误设备

使用示例:

<?phpfwrite(STDOUT, ‘Please Enter Your Name ‘);$name = trim(fgets(STDIN ) );fwrite(STDOUT, "hello $name !");

命令行自定义变量1【$argv|$argc】
在命令行里输入程序参数来更改其运行方式是很常见的做法。你也可以对CLI程序这样做。
PHP CLI带有两个特殊的变量,专门用来达到这个目的:
  一个是$argv变量,它通过命令行把传递给PHP脚本的参数保存为单独的数组元素;
  另一个是$argc变量,它用来保存$argv数组里元素的个数。

使用示例:

<?phpprint_r($argv);

运行:

 php -f .\cli.php name age sexarray(4) { ?[0]=> ?string(9) ".\cli.php" ?[1]=> ?string(4) "name" ?[2]=> ?string(3) "age" ?[3]=> ?string(3) "sex"}

要注意的是,$argv的第一个自变量总是脚本自己的名称。

注意:我们还可以用Console_Getopt PEAR类向PHP增加更加复杂的命令行参数。

命令行自定义变量2【使用Console_Getopt接收参数】

注意:这个变量仅在 register_argc_argv 打开时可用

getopt($option, $longopts) // 第一个$option接收 -h vb 第二个参数接收 --require sss

<?php ???????$shortopts = ""; ???????$shortopts .= "f:"; ?// Required value ???????$shortopts .= "v::"; // Optional value ???????$shortopts .= "abc"; // These options do not accept values ???????$longopts = array( ???????????"required:", // Required value ???????????"optional::", // Optional value ???????????"option", // No value ???????????"opt", // No value ???????); ???????$options = getopt($shortopts, $longopts); ???????var_dump($options);

结果:

php.exe ?\tools\index.php -f "value for f" -v -a --required value --optional="optional value" --option willarray(6) { ?["f"]=> ?string(11) "value for f" ?["v"]=> ?bool(false) ?["a"]=> ?bool(false) ?["required"]=> ?string(5) "value" ?["optional"]=> ?string(14) "optional value" ?["option"]=> ?bool(false)}

命令行变量3【使用CLI参数】

除了用命令行传递PHP脚本参数,还可以传递PHP CLI参数以更改其工作方式。

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

你还可以以交互方式使用PHP CLI,也就是输入命令,马上获得结果。
要得到这种效果,只需要使用一个参数调用CLI可执行文件就行了,就像下面这样:

shell> /path/to/php -aInteractive mode enabled<?phpecho mktime();1121187283echo 2+2;4exit();

 或者,你可以不使用-a参数就调用CLI可执行文件,直接输入完整的脚本或者代码段。

用<Ctrl>-D来结束代码段,并让CLI来执行它。见下面的例子

shell> /path/to/php<?phpecho date("d-M-Y h:i:s", time());?><Ctrl-D>12-Jul-2005 06:54:04

PHP之CLI模式

原文地址:https://www.cnblogs.com/xingxia/p/php_cli.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved