getopt

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

getopt β€” ΠžΡ‚Ρ€ΠΈΠΌΡƒΡ” ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π·Ρ– списку Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ–Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ рядка

Опис

getopt(string $short_options, array $long_options = [], int &$rest_index = null): array|false

Аналізує ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ, ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Ρ– Π² скрипт.

Бписок ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ–Π²

short_options

КоТСн символ Ρƒ Ρ†ΡŒΠΎΠΌΡƒ рядку Ρ€ΠΎΠ·Π³Π»ΡΠ΄Π°Ρ‚ΠΈΠΌΠ΅Ρ‚ΡŒΡΡ як ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Ρ– ΠΏΠΎΡ€Ρ–Π²Π½ΡŽΠ²Π°Ρ‚ΠΈΠΌΠ΅Ρ‚ΡŒΡΡ Ρ–Π· символами, ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ΠΈΠΌΠΈ Ρƒ скрипт, ΠΏΠ΅Ρ€Π΅Π΄ якими стоятимС дСфіс (-). ΠΠ°ΠŸΡ€ΠΈΠΊΠ»Π°Π΄, строка ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²"x" Ρ€ΠΎΠ·ΠΏΡ–Π·Π½Π°Ρ”Ρ‚ΡŒΡΡ як ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ -x. Π”ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡŒΡΡ лишС символи a-z, A-Z Ρ‚Π° 0-9.

long_options

Масив ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ–Π². КоТСн Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ масиву Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΠ²Π°Ρ‚ΠΈΠΌΠ΅Ρ‚ΡŒΡΡ як рядковий ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Ρ– ΠΏΠΎΡ€Ρ–Π²Π½ΡŽΠ²Π°Ρ‚ΠΈΠΌΠ΅Ρ‚ΡŒΡΡ Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ, ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ΠΈΠΌΠΈ Π² скрипт, ΠΏΠ΅Ρ€Π΅Π΄ якими стоятимС ΠΏΠΎΠ΄Π²Ρ–ΠΉΠ½ΠΈΠΉ дСфіс (--). Наприклад, Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ longopts "opt" Π±ΡƒΠ΄Π΅ Ρ€ΠΎΠ·ΡˆΠΈΡ„Ρ€ΠΎΠ²ΡƒΠ²Π°Ρ‚ΠΈΡΡ як --opt

rest_index

Если Π·Π°Π΄Π°Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€rest_index, Ρ‚ΠΎ індСкс, Π½Π° якому зупинився Ρ€ΠΎΠ·Π±Ρ–Ρ€, Π±ΡƒΠ΄Π΅ записано Π΄ΠΎ нього.

АргумСнтshort_options ΠΌΠΎΠΆΠ΅ містити Ρ‚Π°ΠΊΡ– Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ:

  • ΠžΠΊΡ€Π΅ΠΌΡ– символи (Ρ‰ΠΎ Π½Π΅ ΠΌΠ°ΡŽΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΡŒ)
  • Π‘ΠΈΠΌΠ²ΠΎΠ»ΠΈ, Π·Π° якими слідує Π΄Π²ΠΎΠΊΡ€Π°ΠΏΠΊΠ° (ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π²ΠΈΠΌΠ°Π³Π°Ρ” значСння)
  • Π‘ΠΈΠΌΠ²ΠΎΠ»ΠΈ, Π·Π° якими слідує Π΄Π²Ρ– Π΄Π²ΠΎΠΊΡ€Π°ΠΏΠΊΠΈ (Π½Π΅ΠΎΠ±ΠΎΠ²'язковС значСння)

ЗначСння ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ–Π² ΠΉΠ΄ΡƒΡ‚ΡŒ Π·Π° рядком ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° (символом). Π―ΠΊΡ‰ΠΎ ΠΏΠΎΡ‚Ρ€Ρ–Π±Π½ΠΎ значСння, Ρ‚ΠΎ Π½Π΅ΠΌΠ°Ρ” Ρ€Ρ–Π·Π½ΠΈΡ†Ρ–, Ρ” ΠΌΡ–ΠΆ Π½ΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ±Ρ–Π» Ρ‡ΠΈ Π½Ρ–.

ЗауваТСння: НСобов'язкові значСння Π½Π΅ ΠΌΠΎΠΆΠ½Π° Π²Ρ–Π΄ΠΎΠΊΡ€Π΅ΠΌΠ»ΡŽΠ²Π°Ρ‚ΠΈ Π²Ρ–Π΄ Ρ–Π½ΡˆΠΈΡ… пропусків " "

ЗначСння масиву long_options ΠΌΠΎΠΆΡƒΡ‚ΡŒ містити:

  • Рядок (ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π½Π΅ Π½Π°Π±ΡƒΠ²Π°Ρ” ΠΆΠΎΠ΄Π½ΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΡŒ)
  • Рядок, Π·Π° яким слідує Π΄Π²ΠΎΠΊΡ€Π°ΠΏΠΊΠ° (ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π²ΠΈΠΌΠ°Π³Π°Ρ” значСння)
  • Рядок, Π·Π° яким слідує Π΄Π²Ρ– Π΄Π²ΠΎΠΊΡ€Π°ΠΏΠΊΠΈ (Π½Π΅ΠΎΠ±ΠΎΠ²'язковС значСння)

ЗауваТСння :

Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΈ short_optionsΠΈlong_options ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π½ΠΎ Π·Π±Ρ–Π³Π°ΡŽΡ‚ΡŒΡΡ. Π’Ρ–Π΄ΠΌΡ–Π½Π½Ρ–ΡΡ‚ΡŒ полягає лишС Π² Ρ‚ΠΎΠΌΡƒ, Ρ‰ΠΎ long_options ΠΏΡ€ΠΈΠΉΠΌΠ°Ρ” масив ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ–Π² (Ρƒ якому ΠΊΠΎΠΆΠ΅Π½ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ Ρ” ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ) Ρƒ Ρ‚ΠΎΠΉ час, як short_options ΠΏΡ€ΠΈΠΉΠΌΠ°Ρ” рядок (Π΄Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ Ρ” ΠΊΠΎΠΆΠ΅Π½ символ).

ЗначСння, Ρ‰ΠΎ ΠΏΠΎΠ²Π΅Ρ€Ρ‚Π°ΡŽΡ‚ΡŒΡΡ

Ѐункція ΠΏΠΎΠ²Π΅Ρ€Π½Π΅ масив ΠΏΠ°Ρ€ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ–Π²/Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ–Π² Π°Π±ΠΎ **false**Π² случаС возникновСния ошибки.

ЗауваТСння :

Π―ΠΊ Ρ‚Ρ–Π»ΡŒΠΊΠΈ Π·ΡƒΡΡ‚Ρ€Ρ–Π½Π΅Ρ‚ΡŒΡΡ ΠΏΠ΅Ρ€ΡˆΠΈΠΉ символ, Ρ‰ΠΎ Π½Π΅ Ρ” ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ, Ρ€ΠΎΠ·Π±Ρ–Ρ€ рядка ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π±ΡƒΠ΄Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΎ, Π° частина рядка, Ρ‰ΠΎ залишилася, Π±ΡƒΠ΄Π΅ ΠΏΡ€ΠΎΡ–Π³Π½ΠΎΡ€ΠΎΠ²Π°Π½Π°.

список Π·ΠΌΡ–Π½

Π’Π΅Ρ€ΡΠΈΡΠžΠΏΠΈΡ
7.1.0Π”ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€rest_index

ΠŸΡ€ΠΈΠΊΠ»Π°Π΄ΠΈ

ΠŸΡ€ΠΈΠΊΠ»Π°Π΄ #1 ΠŸΡ€ΠΈΠΊΠ»Π°Π΄ використання getopt(): основи

Loading...

shell> php example.php -fvalue -h

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ виконання Π½Π°Π²Π΅Π΄Π΅Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Ρƒ:

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

ΠŸΡ€ΠΈΠΊΠ»Π°Π΄ #2 ΠŸΡ€ΠΈΠΊΠ»Π°Π΄ використання getopt(): додавання Π΄ΠΎΠ²Π³ΠΈΡ… ΠΎΠΏΡ†Ρ–ΠΉ

Loading...

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

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ виконання Π½Π°Π²Π΅Π΄Π΅Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Ρƒ:

array(6) {
  ["f"]=>
  string(11) "value for f"
  ["v"]=>
  bool(false)
  ["a"]=>
  bool(false)
  ["required"]=>
  string(5) "value"
  ["optional"]=>
  string(14) "optional value"
  ["option"]=>
  bool(false)
}

ΠŸΡ€ΠΈΠΊΠ»Π°Π΄ #3 ΠŸΡ€ΠΈΠΊΠ»Π°Π΄ використання getopt(): ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ΠΊΡ–Π»ΡŒΠΊΠΎΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ–Π² як ΠΎΠ΄Π½ΠΎΠ³ΠΎ

Loading...

shell> php example.php -aaac

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ виконання Π½Π°Π²Π΅Π΄Π΅Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Ρƒ:

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

ΠŸΡ€ΠΈΠΊΠ»Π°Π΄ #4 ΠŸΡ€ΠΈΠΊΠ»Π°Π΄getopt()с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌrest_index

Loading...

shell> php example.php -a 1 -b 2 -- test

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ виконання Π½Π°Π²Π΅Π΄Π΅Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Ρƒ:

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

Π”ΠΈΠ²Ρ–Ρ‚ΡŒΡΡ Ρ‚Π°ΠΊΠΎΠΆ