Ce face getopt
getopt interpretează argumentele din linia de comandă. Opțiunile scurte se descriu într-un text: "v" (fără valoare), "f:" (valoare obligatorie), "l::" (valoare opțională). Opțiunile lungi se dau într-un tablou, cu aceleași semne: ["fisier:", "test"].
Rezultatul este un tablou cu opțiunile găsite. O opțiune fără valoare are valoarea false, deci verifici existența cu isset sau array_key_exists.
Parametri
| Parametru | Descriere |
|---|---|
$short_options |
Opțiunile scurte, de exemplu "vf:". |
$long_options |
Opțional. Opțiunile lungi, de exemplu ["fisier:", "test"]. |
$rest_index |
Opțional. Variabilă în care se pune poziția primului argument care nu este opțiune. |
Ce returnează
Un tablou cu opțiunile găsite sau false la eroare.
Exemple
Exemplul 1: Script de import cu opțiuni
<?php
$optiuni = getopt("v", ["fisier:", "test"]);
$fisier = $optiuni["fisier"] ?? "produse.csv";
$detaliat = isset($optiuni["v"]);
$test = isset($optiuni["test"]);
echo "Import din $fisier" . ($test ? " (test)" : "") . ($detaliat ? ", cu detalii" : "") . "\n";
var_dump($optiuni);
Rezultat pentru: php import.php -v –fisier=clienti.csv
Import din clienti.csv, cu detalii
array(2) {
["v"]=>
bool(false)
["fisier"]=>
string(11) "clienti.csv"
}
Greșeli frecvente
- Verifici o opțiune fără valoare cu
if ($optiuni["v"]). Valoarea ei estefalse, deci condiția nu e îndeplinită niciodată. Foloseșteisset($optiuni["v"]).
Comenzi înrudite
php_sapi_name: Returnează modul în care rulează PHP: cli (linia de comandă), fpm-fcgi, apache2handler și altele.getenv / putenv: Citește o variabilă de mediu (getenv) sau setează una pentru procesul curent (putenv).exec: Rulează o comandă a sistemului de operare și returnează ultima linie afișată de ea.