命令行输出php 并传递参数

来源:互联网 发布:鬼刀精装画册淘宝 编辑:程序博客网 时间:2024/06/06 17:18

test.php代码:

<?phpprint_r($argv);?>

然后命令行:

php test.php

输出是:

Array(    [0] => test.php)

再用命令行:

php test.php arg1 arg2

输出是:

Array(    [0] => test.php    [1] => arg1    [2] => arg2)

在命令行里执行php脚本时,我们可以给它参数$argv,它是一个数组,形如

图片 第一个元素保存的是脚本的文件名,其他是我们输入的参数,(参数是以空格分开). $argc 保存着$argv的长度. 习惯用法php php脚本  参数1   参数2   参数3  ...参数n, 此方法在命令行中使用,定时任务用,linux中用crontab来跑 

方法二 使用getopt函数()

getopt (string $options [, array$longopts ] );

参数解析:

options

该字符串中的每个字符会被当做选项字符,匹配传入脚本的选项以单个连字符(-)开头。比如,一个选项字符串 "x" 识别了一个选项 -x只允许 a-z、A-Z 和 0-9。
longopts
选项数组。此数组中的每个元素会被作为选项字符串,匹配了以两个连字符(--)传入到脚本的选项。例如,长选项元素 "opt" 识别了一个选项 --opt

options 可能包含了以下元素:

  • 单独的字符(不接受值)
  • 后面跟随冒号的字符(此选项需要值)
  • 后面跟随两个冒号的字符(此选项的值可选)
选项的值是字符串后的第一个参数。它不介意值之前是否有空格。
[php] view plain copy 在CODE上查看代码片派生到我的代码片
  1. $options = "f:g:";  
  2.   
  3. $opts = getopt$options );  
  4.   
  5. print_r($opts);   
在命令行下运行 /usr/local/php/bin/php ./getopt.php -f 123 -g 456

运行结果:

[php] view plain copy 在CODE上查看代码片派生到我的代码片
  1. Array  
  2.   
  3. (  
  4.   
  5. [f] => 123  
  6.   
  7. [g] => 456  
  8.   
  9. )  

方法三 提示用户输入,然后获取输入的参数。有点像C语言

[php] view plain copy 在CODE上查看代码片派生到我的代码片
  1. fwrite(STDOUT, "Enter your name: ");  
  2.   
  3. $name = trim(fgets(STDIN));  
  4.   
  5. fwrite(STDOUT, "Hello, $name!");   

stdout -- 标准输出设备 (printf("..")) 同 stdout。stderr -- 标准错误输出设备两者默认向屏幕输出。但如果用转向标准输出到磁盘文件,则可看出两者区别。stdout输出到磁盘文件,stderr在屏幕。

在命令行下运行 /usr/local/php/bin/php ./getopt.php

运行结果

[php] view plain copy 在CODE上查看代码片派生到我的代码片
  1. Enter your name: zhang //(zhang 为用户输入)  
  2.   
  3. Hello, zhang! 
0 0
原创粉丝点击