getopt

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

getoptKomut satırı değiştirgeleri listesinden seçenekleri döndürür

Açıklama

getopt ( string $kısa_seçenekler , array $uzun_seçenekler = [] , int &$kalan_indisi = null ) : array|false

Betiğe aktarılan seçenekleri çözümler.

Değiştirgeler

kısa_seçenekler
Bir dizge olup, dizgenin her karakteri bir seçenek karakteri olarak kullanılır ve bu karakterlerle eşleşen seçenekler önlerine birer tire imi (-) konarak betik çalıştırılırken komut satırından belirtilebilir. Örneğin, "x" seçenek dizgesi -x seçeneğinin tanınmasını sağlar. Sadece a-z, A-Z ve 0-9 karakterlerine izin verilir.
uzun_seçenekler
Bir dizi olup, dizinin her elemanı bir seçenek dizgesi olarak kullanılır ve bu dizgelerle eşleşen seçenekler önlerine birer çift tire imi (--) konarak betik çalıştırılırken komut satırından belirtilebilir. Örneğin, "opt" elemanı --opt seçeneğinin tanınmasını sağlar.
kalan_indisi
kalan_indisi değiştirgesi belirtilmişse, değiştirge çözümlemesinin durduğu indis bu değişkene yazılacaktır.

kısa_seçenekler değiştirgesi şu bileşenleri içerebilir:

  • Tek tek karakterler (değerler kabul edilmez)
  • Ardına tek bir iki nokta imi konmuş karakterler (değiştirgenin değer gerektirdiğini belirtir)
  • Ardına bir çift iki nokta imi konmuş karakterler (değiştirgenin isteğe bağlı değer kabul ettiğini belirtir)
Seçenek değerleri dizgeden sonraki ilk değiştirgedir. Bir değer gerekliyse değerin sonunda boşluk bulunup bulunmadığına bakılmaz.

Bilginize: İsteğe bağlı değerler bir ayraç olarak " " (boşluk) kabul etmezler.

uzun_seçenekler dizisinin içerebileceği değerler:

  • Sizge (değiştirge değer kabul etmez)
  • Ardına tek bir iki nokta imi konmuş dizge (değiştirge değer gerektirir)
  • Ardına bir çift iki nokta imi konmuş dizge (seçimlik değer)

Bilginize:

kısa_seçenekler ve uzun_seçenekler için biçem hemen hemen aynıdır. Tek fark, birincisinin bir dizge (her karakter bir seçenek) ikincisinin bir dizi (her eleman bir seçenek) almasıdır.

Dönen Değerler

Değiştirge çiftlerini içeren bir dizi, başarısızlık durumunda false döner.

Bilginize:

Seçeneklerin çözümlenmesi seçenek olmayan ilk değerde durur, kalan herşey yok sayılır.

Sürüm Bilgisi

Sürüm: Açıklama
7.1.0 kalan_indisi değiştirgesi eklendi.

Örnekler

Örnek 1 - getopt() örneği - temeller

<?php
// Betik: example.php
$options getopt("f:hp:");
var_dump($options);
?>
shell> php example.php -fdeğer -h

Yukarıdaki örneğin çıktısı:

array(2) {
  ["f"]=>
  string(5) "değer"
  ["h"]=>
  bool(false)
}

Örnek 2 - getopt() ve uzun seçenekler

<?php
// Betik: betik.php
$kısalar  "";
$kısalar .= "f:";  // Değer, zorunlu
$kısalar .= "v::"// Değer, seçimlik
$kısalar .= "abc"// Bunlar değer kabul etmez

$uzunlar  = array(
    
"gerekli:",     // Değer, zorunlu
    
"seçimlik::",   // Değer, seçimlik
    
"seçenek",      // Değer kabul etmez
    
"sçnk",         // Değer kabul etmez
);
$seçenekler getopt($kısalar$uzunlar);
var_dump($seçenekler);
?>
shell> php betik.php -f "f değeri" -v -a --gerekli değer --seçimlik="seçimlik değer" --seçenek

Yukarıdaki örneğin çıktısı:

array(6) {
  ["f"]=>
  string(9) "f değeri"
  ["v"]=>
  bool(false)
  ["a"]=>
  bool(false)
  ["gerekli"]=>
  string(6) "değer"
  ["seçimlik"]=>
  string(16) "seçimlik değer"
  ["seçenek"]=>
  bool(false)
}

Örnek 3 - getopt() ve çoklu-tek seçenek

Çok sayıda seçeneğin tek bir seçenek olarak verilmesi:

<?php
// Betik: betik.php
$options getopt("abc");
var_dump($options);
?>
shell> php betik.php -aaac

Yukarıdaki örneğin çıktısı:

array(2) {
  ["a"]=>
  array(3) {
    [0]=>
    bool(false)
    [1]=>
    bool(false)
    [2]=>
    bool(false)
  }
  ["c"]=>
  bool(false)
}

Örnek 4 getopt() ve kalan_indisi kullanımı

<?php
// Betik: example.php
$optind null;
$opts getopt('a:b:', [], $optind);
$pos_args array_slice($argv$optind);
var_dump($pos_args);
shell> php example.php -a 1 -b 2 -- test

Yukarıdaki örneğin çıktısı:

array(1) {
  [0]=>
  string(4) "test"
}

Ayrıca Bakınız