phpをcliで使ったときのオプションの与え方とか

getoptって関数を使うと簡単にCLIの使い方をしたときのオプションを分解できる。ハイフン三つとかでも解釈できるらしい。一つのオプションに複数個の値を与えたい場合には同じオプションを並べて書くらしい。あとから上書きされるってことはないみたい。

引数のoptionsには三種類の与え方で与えたい引数を列挙。対象文字+コロン->値が必須オプション、対象文字のみ->あたえちゃダメなオプション、対象文字+コロン二つ->定義だけでいいようなオプション。

“f:hp:”だとfとpが値が必須のオプションで、hはオプションとして許されて無くて、って感じらしい。

公式マニュアルが新しくなって詳しく載ってた。

http://php.net/manual/ja/function.getopt.php

確か同名の関数がperlにもあったような・・・。

<?php
$options = getopt("f:hp:");
var_dump($options);
?>
%php argvtest.php --fhogee -fdhoge --hpohoge -hpohoho ---hphoho
array(3) {
  ["f"]=>
  array(2) {
    [0]=>
    string(5) "hogee"
    [1]=>
    string(5) "dhoge"
  }
  ["h"]=>
  array(3) {
    [0]=>
    bool(false)
    [1]=>
    bool(false)
    [2]=>
    bool(false)
  }
  ["p"]=>
  array(3) {
    [0]=>
    string(5) "ohoge"
    [1]=>
    string(5) "ohoho"
    [2]=>
    string(4) "hoho"
  }
}

コメントを残す