de.comp.lang.php.* FAQ

5.11. Wie kann ich auf Kommandozeilen-Argumente zugreifen?

Keywords: shell | Parameter | CGI | Kommandozeile | Script

Antwort von Kristian Köhntopp

Wenn PHP über die Shell als Skriptsprache benutzt wird, ist es oft nützlich, auf der Kommandozeile Parameter zu übergeben. In PHP stehen die Variablen $_SERVER["argc"] und $_SERVER["argv"] zur Verfügung.

$_SERVER["argc"]

Anzahl der auf der Kommandozeile übergebenen Argumente.

$_SERVER["argv"]

Array mit den übergebenen Argumenten und dem Dateinamen im ersten Element.

Wenn ein PHP-Skript über das Web aufgerufen wird, enthalten diese Variablen die über GET übergeben Argumente. Man kann dieses Verhalten in der php.ini-Datei abschalten ( register_argv_argc ).

Beispiel:

tobias@dev:~ > cat arg.php
#! /usr/bin/php -q
# Getestet mit Suse Linux 8.1 (register_globals = off)
<?php
  echo "argc = {$_SERVER['argc']}\n";
  foreach ($_SERVER['argv'] as $k => $v) {
    echo "_SERVER['argv'][$k] = $v\n";
  }
tobias@dev:~ > ./arg.php foo bar baz
argc = 4
_SERVER['argv'][0] = /var/tmp/x.php
_SERVER['argv'][1] = foo
_SERVER['argv'][2] = bar
_SERVER['argv'][3] = baz

Antwort von Frank Wiegand

Komfortables Parsing der Argumente bietet das PEAR-Paket Console_Getopt.

Valid HTML 4.01! Valid CSS!

5.11. Wie kann ich auf Kommandozeilen-Argumente zugreifen?
http://www.php-faq.de/q/q-php-shell.html
Archiv der de.comp.lang.php-FAQ Dies ist eine Archivseite von 2008 und wurde seitdem nicht geändert. Das dclp-FAQ-Team