`

php 命令行

    博客分类:
  • PHP
阅读更多
PHP 使用cli可以参考官网:http://cn.php.net/manual/en/features.commandline.php
1.php cli 运行有两种方式
eg:
方式一:test1.php
<?php
echo 'test'."\n";

可以使用php test1.php方式运行
方式二:test2.php
#!/usr/bin/php -q
<?php
echo 'test'."\n";

将test2.php具有可执行权限 ./test2.php运行(类似shell处理,文件名可以随意)

2.判断PHP cli模式的方式有一下几种
php_sapi_name() === 'cli'

3.php options 常用
-a 交互是运行
-d 运行脚本设置当前环境变量
-i 显示phpinfo()信息
-m 列出安装module
-r 运行脚本
-R 对于文件中的每一行都运行代码
-F 对于文件中的每一行都执行指定的文件

3.输入输出处理
<?php
$stdin = fopen('php://stdin', 'r');
or
$line = trim(fgets(STDIN)); // reads one line from STDIN
fscanf(STDIN, "%d\n", $number); // reads number from STDIN
?>

<?php
$stdout = fopen('php://stdout', 'w');
or
fwrite(STDOUT, $stdout);
?>

<?php
$stderr = fopen('php://stderr', 'w');
or
fwrite(STDERR, 'error');
?>

usage:处理命令行输入
print "Type message. Type '.' on a line by itself\n";
$fp = fopen('php://stdin', 'r') or die($php_errormsg);
$lastLine = false;
$msg = '';
while (!$lastLine) {
    $nextLine = fgets($fp, 1024);
    if(".\n" == $nextLine) {
        $lastLine = true; 
    } else {
        $msg .= $nextLine; 
    }
}
fclose($fp);
print "\nMessage:\n$msg";


在此还可以是使用readline: http://cn.php.net/manual/en/book.readline.php

3.$argc & $argv 是全局变量(register_argc_argv该设置默认打开)
有一个有用函数格式化参数:
<?php
/**
 * get php cli arguments
 * Usage: php test.php --foo --bar=baz
		  php test.php --foo -b=baz
		  php test.php -abc
		  php test.php arg1 arg2 arg3
 */
function arguments($argv) {
    array_shift($argv);
    $out = array();
	if($argv) {
		foreach ($argv as $arg) {
			if (substr($arg,0,2) == '--') {
				$eqPos = strpos($arg,'=');
				if ($eqPos === false){
					$key = substr($arg,2);
					$out[$key] = isset($out[$key]) ? $out[$key] : true;
				} else {
					$key = substr($arg,2,$eqPos-2);
					$out[$key] = substr($arg,$eqPos+1);
				}
			} else if (substr($arg,0,1) == '-') {
				if (substr($arg,2,1) == '=') {
					$key = substr($arg,1,1);
					$out[$key] = substr($arg,3);
				} else {
					$chars = str_split(substr($arg,1));
					foreach ($chars as $char) {
						$key = $char;
						$out[$key] = isset($out[$key]) ? $out[$key] : true;
					}
				}
			} else {
				$out[] = $arg;
			}
		}
	}
    return $out;
}


4.处理类似密码屏蔽显示
<?php
print 'Login:';
$fp = fopen('php://stdin', 'r');
$username = trim(fgets($fp, 64));
print 'Password:';
`/bin/stty -echo`;
$password = trim(fgets($fp, 64)) or die($php_errormsg);
`/bin/stty echo`;
print "\n";


 
分享到:
评论

相关推荐

    PHP 命令行模式开发框架mix-master.zip

    当我们谈论"PHP命令行模式开发框架"时,我们是指利用PHP不仅进行网页应用的开发,还可以通过命令行接口(CLI)执行任务。这种模式允许开发者创建独立于Web服务器的应用程序,如后台任务、自动化脚本或者工具。 "mix...

    Amazone S3 PHP 命令行工具_PHP_代码_下载

    本教程将详细介绍如何使用PHP命令行工具与Amazon S3进行交互,并提供相关的代码示例和下载资源。 首先,你需要安装AWS SDK for PHP,这是与Amazon S3服务进行通信的官方PHP库。可以通过Composer(PHP的依赖管理工具...

    GetOptionKit一个面向对象的PHP命令行参数解析器

    这个库为开发者提供了一种优雅的方式来处理命令行输入,使得构建具有复杂选项和...通过查阅官方文档或源码中的示例,你可以快速掌握其用法,并将其应用到你的PHP命令行项目中,提升命令行工具的用户体验和开发效率。

    PHP 命令行参数详解及应用

    通过这些命令行参数,开发者可以将PHP脚本作为shell命令来使用,例如`php -q 文件名.php`可以直接运行PHP脚本,而`php -s 文件名.php`则可以将PHP源代码以彩色HTML的形式展示出来。此外,结合PHP的ODBC功能,可以在...

    windows下安装pear及phpunit(注意配置好php命令行环境)

    本文将详细说明安装过程,包括配置PHP命令行环境、安装PEAR以及如何正确安装PHPUnit。 ### 安装环境和准备工作 在Windows下安装PEAR和PHPUnit之前,首先需要有一个运行良好的PHP环境。如果使用的是如WAMP这样的...

    一个简单的PHP命令行cli输出彩色的类库

    在IT行业中,尤其是在PHP开发领域,有时候我们需要在命令行接口(CLI)环境下处理输出,而命令行输出默认是单色的,这对于日志记录、调试或者用户交互可能会显得单调乏味。为了提升可读性和用户体验,我们可以利用...

    php命令行写shell实例详解

    PHP命令行工具是PHP提供的一个命令行解释器,它允许用户在没有Web服务器环境的情况下执行PHP脚本。这在开发命令行脚本或进行批处理操作时非常有用。本文将详细探讨如何使用PHP命令行以及相关的选项和使用场景。 ...

    浅谈php命令行用法

    本文主要讨论了PHP命令行的使用方法,对于PHP开发者来说,这是一个重要的技能,因为它不仅限于在Web服务器中使用,还可以在命令行中执行。首先,我们将了解如何查看PHP的版本和配置信息,然后探索在命令行中运行PHP...

    php命令行使用方法和命令行参数说明

    PHP命令行使用方法和命令行参数说明涉及到了PHP在非web环境下运行脚本的多种方式。这一部分知识对于系统管理员以及需要在没有服务器交互的环境下执行PHP代码的开发者尤为重要。以下是详细的说明: 1. 直接执行PHP...

    php-cli-color:简单易用PHP命令行输出的颜色。

    简单易用PHP命令行输出的颜色... 如何使用 &lt;?php require_once 'color.php' ; $ tes = new cli_color; echo $ tes -&gt; black ( "Testing color class, github.com/fadhil-riyanto" ). PHP_EOL ; echo $ tes -&gt; ...

    php命令行(cli)模式下报require 加载路径错误的解决方法

    在开发PHP项目时,我们经常会在命令行界面(CLI)下运行脚本。PHP的CLI模式允许开发者在没有Web服务器的环境下运行PHP代码,这对于计划任务、后台脚本或者自动化测试等场景非常有用。然而,在CLI模式下,脚本在运行...

    php命令行用法入门实例教程

    为了更深入了解PHP,从PHP5.1.2版本开始,PHP命令行工具增加了查看手册的功能。使用 `php --rf function_name` 可以查看指定函数的简介。同理,`--rc` 查看类信息,`--re` 查看扩展信息。例如,`php --rf strip_tags...

    Linux平台php命令行程序处理管道数据的方法

    Linux平台PHP命令行程序处理管道数据的知识点主要涉及以下几个方面: 1. Linux管道命令符":"的作用 Linux系统中的管道命令符":"允许用户将一个命令的输出作为另一个命令的输入。这意味着可以将两个或多个命令连在...

    php命令行(cli)下执行PHP脚本文件的相对路径的问题解决方法

    在php命令行下执行.php文件时,执行环境的工作目录(getcwd( ))是php命令程序(php.exe)所在目录,所以如果想在文件内使用相对路径时,要先切换当前的工作目录才行。 小测试程序: 复制代码 代码如下: &lt;?php  ...

    php cli模式学习(PHP命令行模式)|angluo-php-95936.pdf

    PHP CLI模式是PHP命令行接口(Command Line Interface)的简称,它允许用户在没有Web服务器环境的情况下直接在命令行运行PHP程序。不同于通常在Web服务器上运行的PHP环境(如php-cgi、isapi等),PHP CLI模式可以...

    MixCLI让PHP像Golang一样开发命令行程序单执行文件

    MixCLI就是为了让PHP具备这种能力,使得PHP命令行工具的开发和分发变得更加简单。 【描述解析】 描述部分再次强调了MixCLI的主要功能,即使PHP开发者能够以与Golang类似的方式构建命令行程序,生成单执行文件。这...

Global site tag (gtag.js) - Google Analytics