方法一 使用$argc $argv

$argc — 传递给脚本的参数数目

$argv — 传递给脚本的参数数组

  1. <?php
  2. if ($argc > 1){
  3. print_r($argv);
  4. }

在命令行下运行 /usr/local/php/bin/php ./getopt.php -f 123 -g 456

  1. # /usr/local/php/bin/php ./getopt.php -f 123 -g 456
  2. Array
  3. (
  4. [0] => ./getopt.php
  5. [1] => -f
  6. [2] => 123
  7. [3] => -g
  8. [4] => 456
  9. )

方法二 使用getopt函数()

array getopt ( string $options [, array $longopts [, int &$optind ]] )

参数解析:

options

该字符串中的每个字符会被当做选项字符,匹配传入脚本的选项以单个连字符(-)开头。 比如,一个选项字符串 “x” 识别了一个选项 -x。 只允许 a-z、A-Z 和 0-9。

longopts

选项数组。此数组中的每个元素会被作为选项字符串,匹配了以两个连字符(—)传入到脚本的选项。 例如,长选项元素 “opt” 识别了一个选项 —opt。

options 可能包含了以下元素:

  1. 单独的字符(不接受值)
  2. 后面跟随冒号的字符(此选项需要值)
  3. 后面跟随两个冒号的字符(此选项的值可选)
  1. $options = "f:g:";
  2. $opts = getopt( $options );
  3. print_r($opts);
  1. php ./getopt.php -f 123 -g 456
  2. 运行结果:
  3. Array
  4. (
  5. [f] => 123
  6. [g] => 456
  7. )

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

  1. fwrite(STDOUT, "Enter your name: ");
  2. $name = trim(fgets(STDIN));
  3. fwrite(STDOUT, "Hello, $name!");

stdout — 标准输出设备 (printf(“..”)) 同 stdout。

stderr — 标准错误输出设备

两者默认向屏幕输出。
但如果用转向标准输出到磁盘文件,则可看出两者区别。stdout输出到磁盘文件,stderr在屏幕。

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

  1. Enter your name: zhang //(zhang 为用户输入)
  2. Hello, zhang!