PHP Cli模式獲取命令行參數

1. $argv 從命令行參數列表中獲取選項

主要來源於類似c裏面的

int main(int $argc, char * argv[]){

     //some codes;

    return 0;

}

故$argv[0]即表示文件本身

$argv[1]表示第一個參數

$argv[2]表示第二個參數

後面參數以此類推。

 

 

2 getopt  從命令行參數列表中獲取選項

說明

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

解析傳入腳本的選項。

參數

options

該字符串中的每個字符會被當做選項字符,匹配傳入腳本的選項以單個連字符(-)開頭。 比如,一個選項字符串 "x" 識別了一個選項 -x。 只允許 a-z、A-Z 和 0-9。

longopts

選項數組。此數組中的每個元素會被作爲選項字符串,匹配了以兩個連字符(--)傳入到腳本的選項。 例如,長選項元素 "opt" 識別了一個選項 --opt

optind

If the optind parameter is present, then the index where argument parsing stopped will be written to this variable.

options 可能包含了以下元素:

  • 單獨的字符(不接受值)
  • 後面跟隨冒號的字符(此選項需要值)
  • 後面跟隨兩個冒號的字符(此選項的值可選)

選項的值是字符串後的第一個參數。如果需要一個值,它不介意值之前是否有前置的空格,參見以下內容。

Note: 選項的值不接受空格(" ")作爲分隔符。

Note:

options 和 longopts 的格式幾乎是一樣的,唯一的不同之處是 longopts 需要是選項的數組(每個元素爲一個選項),而 options 需要一個字符串(每個字符是個選項)。

返回值

此函數會返回選項/參數對, 或者在失敗時返回 FALSE

Note:

選項的解析會終止於找到的第一個非選項,之後的任何東西都會被丟棄。

7.1.0 添加 optind 參數。
5.3.0 支持 "=" 作爲 參數和值的分隔符。
5.3.0 增加了可選值的支持(用"::"指定)。
5.3.0 參數 longopts 在所有系統平臺上均可用。
5.3.0 此函數不再依賴於操作系統,現在也能夠在 Windows 上運行。

例如test.php:

<?php

$param = getopt('f:a::e');

print_r($param);

 

然後執行   php test.php -f a.out  -a  5 -e 10

那麼$param['f'] = 'a.out',  $param['a'] = '5',  沒有$param['e'],因爲e不接受參數;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章