2016-02-24 23 views
1

我知道我可以在我的PHP腳本中使用getopt和argv,但我不知道如何做一些這樣的:如何將命令和選項傳遞給CLI腳本中的PHP腳本(例如,php file.php mycommand -d「my option」)

php file.php mycommand -d "my option" 

我試圖用這個使用getopt的,但我猜mycommand的冷門是:

var_dump(getopt('d:')); // empty array 

目前我使用$ argv已得到命令,但使用該與-x選項意味着我需要做一些處理來提取選項。我希望有這樣做的正確方法:

array(5) { 
    [0]=> 
    string(27) "file.php" 
    [1]=> 
    string(4) "mycommand" 
    [2]=> 
    string(2) "-d" 
    [3]=> 
    string(4) "my option" 
} 

有沒有辦法做到這一點?

回答

0

您必須刪除選項和值

命令

php 1.php -xmycommand -d"my option" 

PHP代碼

var_dump(getopt('x:d:')); 

輸出

之間的空間
array(2) { 
    ["x"]=> 
    string(9) "mycommand" 
    ["d"]=> 
    string(9) "my option" 
} 
+0

嗨。似乎沒有工作。當我刪除mycommand時,只填充getopt數組。此外,空間似乎也沒有任何區別。 – Martyn

+0

@Martyn我已經更新了我的回答 –

+0

感謝您的建議,但並非真正在尋找我想要的。我真的不希望命令需要選項前綴。也許我可以看看像Phinx這樣允許'vendor/bin/phinx migrate -e development'的軟件包,看看他們是怎麼做到的。乾杯 – Martyn

相關問題