getopt

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

getoptGets options from the command line argument list

Beschreibung

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

Parses options passed to the script.

Parameter-Liste

short_options
Each character in this string will be used as option characters and matched against options passed to the script starting with a single hyphen (-). For example, an option string "x" recognizes an option -x. Only a-z, A-Z and 0-9 are allowed.
long_options
An array of options. Each element in this array will be used as option strings and matched against options passed to the script starting with two hyphens (--). For example, an longopts element "opt" recognizes an option --opt.
rest_index
If the rest_index parameter is present, then the index where argument parsing stopped will be written to this variable.

The short_options parameter may contain the following elements:

  • Individual characters (do not accept values)
  • Characters followed by a colon (parameter requires value)
  • Characters followed by two colons (optional value)
Option values are the first argument after the string. If a value is required, it does not matter whether the value has leading white space or not. See note.

Hinweis: Optional values do not accept " " (space) as a separator.

The long_options array values may contain:

  • String (parameter does not accept any value)
  • String followed by a colon (parameter requires value)
  • String followed by two colons (optional value)

Hinweis:

The format for the short_options and long_options is almost the same, the only difference is that long_options takes an array of options (where each element is the option) whereas short_options takes a string (where each character is the option).

Rückgabewerte

This function will return an array of option / argument pairs, Bei einem Fehler wird false zurückgegeben..

Hinweis:

The parsing of options will end at the first non-option found, anything that follows is discarded.

Changelog

Version Beschreibung
7.1.0 Added the rest_index parameter.

Beispiele

Beispiel #1 getopt() example: The basics

<?php
// Script example.php
$options getopt("f:hp:");
var_dump($options);
?>
shell> php example.php -fvalue -h

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

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

Beispiel #2 getopt() example: Introducing long options

<?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);
?>
shell> php example.php -f "value for f" -v -a --required value --optional="optional value" --option

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

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)
}

Beispiel #3 getopt() example: Passing multiple options as one

<?php
// Script example.php
$options getopt("abc");
var_dump($options);
?>
shell> php example.php -aaac

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

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

Beispiel #4 getopt() example: Using rest_index

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

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

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

Siehe auch

Hier Kannst Du einen Kommentar verfassen


Bitte gib mindestens 10 Zeichen ein.
Wird geladen... Bitte warte.
* Pflichtangabe
Es sind noch keine Kommentare vorhanden.

Was genau bedeutet "Vibe Coding"? Ein tiefgehender Blick für Entwickler

In der Welt der Softwareentwicklung gibt es unzählige Wege, wie man an ein Projekt herangeht. Manche schwören auf strikte Planung, andere auf bewährte Algorithmen und wieder andere lassen sich von etwas ganz anderem leiten: ihrem Gefühl. ...

admin

Autor : admin
Kategorie: Software & Web-Development

PHP cURL-Tutorial: Verwendung von cURL zum Durchführen von HTTP-Anfragen

cURL ist eine leistungsstarke PHP-Erweiterung, die es Ihnen ermöglicht, mit verschiedenen Servern über verschiedene Protokolle wie HTTP, HTTPS, FTP und mehr zu kommunizieren. ...

TheMax

Autor : TheMax
Kategorie: PHP-Tutorials

Midjourney Tutorial - Anleitung für Anfänger

Über Midjourney, dem Tool zur Erstellung digitaler Bilder mithilfe von künstlicher Intelligenz, gibt es ein informatives Video mit dem Titel "Midjourney Tutorial auf Deutsch - Anleitung für Anfänger" ...

Mike94

Autor : Mike94
Kategorie: KI Tutorials

Tutorial veröffentlichen

Tutorial veröffentlichen

Teile Dein Wissen mit anderen Entwicklern weltweit

Du bist Profi in deinem Bereich und möchtest dein Wissen teilen, dann melde dich jetzt an und teile es mit unserer PHP-Community

mehr erfahren

Tutorial veröffentlichen

2024 Suns Participant Critique: Damion Lee. Gentleman, he can waive a towel!

Enable us toward introduce yet another contemporary contributor in direction of Vivid Aspect, and our minute in opposition to throughout the Pacif ...

Geschrieben von RyanDunn am 28.11.2025 02:20:45
Forum: ASP, PERL, CGI, C und alles andere
Who would the Suns address within an Advancement Draft?

I'm 's July, and enable me inform on your own, it's Really just about anything out below inside the , the thermometer virtually burst at 118 withi ...

Geschrieben von RyanDunn am 28.11.2025 02:19:30
Forum: HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS
In spite of suspension, Miamis Thomas Bryant can order his championship

DENVERhe NBA will let suspended Miami Warm heart Thomas Bryant in direction of quickly be in just Denver's arena Thursday evening hence he can get ...

Geschrieben von RyanDunn am 28.11.2025 02:18:52
Forum: HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS
3 a long time in the past presently, the Cincinnati Bengals drafted

Upon this day, a few yrs in the past, the Cincinnati Bengals retained the initially in general select within the 2020 NFL of we dive into it, let ...

Geschrieben von RyanDunn am 28.11.2025 02:18:01
Forum: SQL / Datenbanken