3
我試圖調試一個遺留的php腳本(),它被設計成通過命令行運行。該腳本設計爲帶有1個可選參數,後跟N個選項。它的意圖是以下兩種情況都應該起作用。如何在php shell腳本中使用參數和選項
案例1:參數的選項:
php script.php <argument> --option-a=tuesdays --option-b
案例2:選擇無參數:
php script.php --option-c
在腳本中使用以下參數和選項是牽強:
$argument = (strpos($argv[1], '-') === 0) ? '' : $argv[1];
$options = getopt('', [
'option-a:',
'option-b',
'option-c',
]);
情況2總是按預期工作。我收到選項並且參數是空的。
情況1未按預期工作。我收到了參數,但$ options數組總是空的。
我見過the suggestion that reverses the order of the options and arguments,所以我打電話給php script --option-c <argument>
。我不想改變它被調用的方式,因爲這是一個遺留的腳本,可以用於善意知道的地方。
有沒有一種方法可以使用getopt()
來獲取可以糾正案例1的選項?