PHP 使用 geopt() 解析 CLI 參數

PHP 於 CLI 環境,想要抓取 Shell 常用的 Option,如 -h、--help .. 等等,要怎麼寫呢?(常用 argv / argc)

PHP 使用 geopt() 解析 CLI 參數

PHP 於 CLI 要抓取 Option 輸入值,可以使用 getopt() 來設定抓取。

  • array getopt ( string $options [, array $longopts ] )
    • $options:
      • f: 需要 value: 可以 -f123, -f 123, -f=123
      • h 不需要 value: -h
      • p: 需要 value: -p123, -p 123, -p=123, 沒有 value 就不會設定 p
    • $longopts:
      • "required:", // Required value 可以 required 123 或 required=123
      • "optional::", // Optional value 一定要用 optional=xxx, 不能 optional xxx
      • "option", // No value

範例

<?php
$options = getopt("f:hp:");
// f: 需要 value: 可以 -f123, -f 123, -f=123
// h 不需要 value: -h
// p: 需要 value: -p123, -p 123, -p=123, 沒有 value 就不會設定 p
// "required:",     // Required value 可以 required 123 或 required=123
// "optional::",    // Optional value 一定要用 optional=xxx, 不能 optional xxx
// "option",        // No value

// php example.php -fvalue -h
?>
<?php
// Script example.php
$shortopts  = "";
$shortopts .= "f:";  // Required value
$shortopts .= "v::"; // Optional value
$shortopts .= "abc"; // These options do not accept values

$longopts  = array(
    "required:",     // Required value
    "optional::",    // Optional value
    "option",        // No value
    "opt",           // No value
);
$options = getopt($shortopts, $longopts);
var_dump($options);

// php example.php -f "value for f" -v -a --required value --optional="optional value" --option
?>

相關網頁

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料