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的linux命令行工具, PHP_命令行工具shell_exec, exec, passthru, system
Amazone S3 PHP 命令行工具_PHP_代码_下载
一个简单的 PHP 命令行 cli 输出彩色的类库
GetOptionKit:一个面向对象的PHP命令行参数解析器
当用户打开php页面时,服务端便执行PHP的命令并将执行结果发送至用户的浏览器中,这类似于ASP和CoildFusion,PHP可以运行在WINDOWS和多种版本的UNIX上。除了能够操作您的页面外,PHP还能发送HTTP的标题。您可以设置...
简单易用PHP命令行输出的颜色... 如何使用 <?php require_once 'color.php' ; $ tes = new cli_color; echo $ tes -> black ( "Testing color class, github.com/fadhil-riyanto" ). PHP_EOL ; echo $ tes -> ...
windows下安装pear及phpunit(注意配置好php命令行环境),需要的朋友可以参考下。
在php命令行下执行.php文件时,执行环境的工作目录(getcwd( ))是php命令程序(php.exe)所在目录,所以如果想在文件内使用相对路径时,要先切换当前的工作目录才行。 小测试程序: 复制代码 代码如下: <?php ...
本文实例讲述了php命令行用法,分享给大家供大家参考。具体用法分析如下: Php是一个非常流行的web服务端脚本语言。其实,php不仅仅可以在web服务器中充当重要角色。在命令行一样可以执行。 本文中,笔者为各位...
本文实例讲述了Linux平台php命令行程序处理管道数据的方法。分享给大家供大家参考,具体如下: linux下有一个强大的命令|(管道提示符).它的作用是将前一个命令的结果交给后一条命令并作为后一条命令的输入.而linux下...
php7-cli-app PHP命令行界面库和生成器脚本安装生成器脚本$ git clone https://github.com/ajthenewguy/php7-cli-app .$ php7-cli-app/installWrite "hatch" binary to (directory): ~/scriptsNew binary written to...
突击队突击队库安装composer require g4code/commando用法 <?phpuse Commando \ Cli ;$ cli = new Cli ();$ cli -> version ( 'x.x.x' );$ cli -> option ()-> short ( "p" ) -> long ( "param" ) -> desc ( '...
PHP命令行工具 有助于命令行开发的功能和类的集合。 要求PHP> = 5.3 建议PHP扩展mbstring-用于计算字符串宽度。功能清单cli\out($msg, ...) cli\out_padded($msg, ...) cli\err($msg, ...) cli\line($msg = '', ...)...
主要介绍了php命令行使用方法和命令行参数说明,需要的朋友可以参考下
yii2.0是支持php命令行运行的,操作方法如下: 在yii根目录下面有个“yii”文件(不是“yii.bat”),这个文件就是入口。然后“commands”目录下会默认有个“HelloController.php”控制器文件,这个是一个demo。打开...
通过实例给大家介绍了php命令行写shell的方法,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧
php_cli模式简介 php-cli是php Command Line Interface的简称,如同它名字的意思,就是php在命令行运行的接口,区别于在Web服务器上运行的php环境(php-cgi, isapi等) 也就是说,php不单可以写前台网页,它还可以...
主要介绍了浅谈php命令行用法的相关资料,需要的朋友可以参考下