Kommandozeilenoptionen

Die Liste der Kommandozeilenoptionen, die das PHP-Binary bereitstellt, kann jederzeit abgerufen werden, indem PHP mit der Option -h gestartet wird:

 Usage: php [options] [-f] <file> [--] [args...] php [options] -r <code> [--] [args...] php [options] [-B <begin_code>] -R <code> [-E <end_code>] [--] [args...] php [options] [-B <begin_code>] -F <file> [-E <end_code>] [--] [args...] php [options] -- [args...] php [options] -a -a Run interactively -c <path>|<file> Look for php.ini file in this directory -n No php.ini file will be used -d foo[=bar] Define INI entry foo with value 'bar' -e Generate extended information for debugger/profiler -f <file> Parse and execute <file>. -h This help -i PHP information -l Syntax check only (lint) -m Show compiled in modules -r <code> Run PHP <code> without using script tags <?..?> -B <begin_code> Run PHP <begin_code> before processing input lines -R <code> Run PHP <code> for every input line -F <file> Parse and execute <file> for every input line -E <end_code> Run PHP <end_code> after processing all input lines -H Hide any passed arguments from external tools. -S <addr>:<port> Run with built-in web server. -t <docroot> Specify document root <docroot> for built-in web server. -s Output HTML syntax highlighted source. -v Version number -w Output source with stripped comments and whitespace. -z <file> Load Zend extension <file>. args... Arguments passed to script. Use -- args when first argument starts with - or script is read from stdin --ini Show configuration file names --rf <name> Show information about function <name>. --rc <name> Show information about class <name>. --re <name> Show information about extension <name>. --rz <name> Show information about Zend extension <name>. --ri <name> Show configuration for extension <name>. 

Kommandozeilenoptionen
OptionLangformBeschreibung
-a--interactive

Startet PHP im interaktiven Modus. Für weitere Informationen siehe die Dokumentation für den Interaktiven Modus.

-b--bindpath

Der Bind-Pfad für den externen FASTCGI-Servermodus (nur CGI).

-C--no-chdir

Nicht in das Verzeichnis des Skripts wechseln (nur CGI).

-q--no-header

Der Quiet-Modus. Unterdrücke die Ausgabe von HTTP-Headern (nur CGI).

-T--timing

Misst die Ausführungszeit des Skripts. Dies wird count mal durchgeführt (nur CGI).

-c--php-ini

Mit dieser Option kann man entweder ein Verzichnis angeben, in welchem nach der php.ini gesucht werden soll, oder man kann eine eigene INI-Datei angeben (diese muss nicht php.ini heissen). Zum Beispiel:

 $ php -c /custom/directory/ my_script.php $ php -c /custom/directory/custom-file.ini my_script.php 

Wenn diese Option nicht angegeben wird, wird die php.ini-Datei an den vorgegebenen Orten gesucht.

-n--no-php-ini

php.ini komplett ignorieren.

-d--define

Diese Option erlaubt es Ihnen, einen eigenen Wert für eine beliebige in php.ini erlaubte Direktive zu setzen. Die Syntax ist:

 -d configuration_directive[=value] 

Beispiel #1 Beispiel für die Verwendung von -d zum Setzen einer INI-Direktive

 # Auslassen des Wertes setzt die Direktive auf "1" $ php -d max_execution_time -r '$foo = ini_get("max_execution_time"); var_dump($foo);' string(1) "1" # Übergeben eines leeren Wertes setzt die Direktive auf "" php -d max_execution_time= -r '$foo = ini_get("max_execution_time"); var_dump($foo);' string(0) "" # Die Direktive wird auf das gesetzt, was nach '=' kommt $ php -d max_execution_time=20 -r '$foo = ini_get("max_execution_time"); var_dump($foo);' string(2) "20" $ php -d max_execution_time=doesntmakesense -r '$foo = ini_get("max_execution_time"); var_dump($foo);' string(15) "doesntmakesense" 
-e--profile-info

Erweiterte Informationen für Debugger/Profiler erstellen.

-f--file

Parst die angegebene Datei und führt sie aus. Das -f ist optional und kann weggelassen werden. Es genügt, nur den Dateinamen anzugeben.

-h und -?--help und --usage Gibt eine Liste von Kommandozeilenoptionen mit kurzen Beschreibungen ihrer Funktion aus.
-i--info Diese Kommandozeilenoption ruft phpinfo() auf und gibt das Ergebnis aus. Wenn PHP nicht korrekt funktioniert, ist es empfehlenswert, php -i zu verwenden und nachzusehen, ob etwa Fehlermeldungen vor oder statt der Informationstabellen ausgegeben werden. Beachten Sie, dass die Ausgabe bei Verwendung des CGI-Modus in HTML erfolgt und deswegen ziemlich umfangreich ist.
-l--syntax-check

Diese Option bietet eine bequehme Möglichkeit, nur eine Syntaxüberprüfung des angegebenen PHP-Codes durchzuführen. Bei Erfolg wird der Text No syntax errors detected in <filename> auf der Standardausgabe ausgegeben und der Rückgabewert ist 0. Bei einem Fehler wird der Text Errors parsing <filename> zusätzlich zur internen Parser-Fehlermeldung auf der Standardausgabe ausgegeben und der Rückgabewert auf -1 gesetzt.

Diese Option findet keine fatalen Fehler (wie undefinierte Funktionen). Verwenden Sie die Option -f, wenn sie auch auf diese überprüfen wollen.

Hinweis:

Diese Option funktioniert nicht zusammen mit -r.

-m--modules

Beispiel #2 Ausgabe der geladenen PHP- und Zend-Module

 $ php -m [PHP Modules] xml tokenizer standard session posix pcre overload mysql mbstring ctype [Zend Modules] 
-r--run

Diese Option erlaubt die Ausführung von PHP Code direkt von der Kommandozeile. Die PHP-Tags <?php und ?> werden nicht benötigt und verursachen einen Parsefehler, wenn sie dennoch vorhanden sind.

Hinweis:

Bei der Verwendung dieser Option in PHP ist besondere Vorsicht geboten, dass es nicht zu Kollisionen mit dem Ersetzen von Kommandozeilenvariablen durch die Shell kommt.

Beispiel #3 Syntaxfehler beim Verwenden von doppelten Anführungszeichen

 $ php -r "$foo = get_defined_constants();" PHP Parse error: syntax error, unexpected '=' in Command line code on line 1 Parse error: syntax error, unexpected '=' in Command line code on line 1 

Das Problem hier ist, dass auch sh/bash Variablen ersetzt, wenn doppelte Anführungszeichen (") verwendet werden. Weil die Variable $foo wahrscheinlich nicht definiert ist, wird die Variable zu nichts aufgelöst. Der entstehende Code, welcher PHP übergeben wird, sieht so aus:

 $ php -r " = get_defined_constants();" 

Der richtige Weg wäre, einfache Anführungszeichen (') zu verwenden. Variablen in einfachen Anführungszeichen werden von sh/bash nicht ersetzt.

Beispiel #4 Verwendung einfacher Anführungszeichen, um ein Ersetzen der Variablen durch die Shell zu verhindern

 $ php -r '$foo = get_defined_constants(); var_dump($foo);' array(370) { ["E_ERROR"]=> int(1) ["E_WARNING"]=> int(2) ["E_PARSE"]=> int(4) ["E_NOTICE"]=> int(8) ["E_CORE_ERROR"]=> [...] 

Wenn eine andere Kommandozeilenumgebung als sh/bash verwendet wird, könnten weitere Probleme auftreten. Gegebenenfalls kann unter » https://github.com/php/php-src/issues ein Bugreport erstellt werden. Man kann dennoch leicht in Schwierigkeiten geraten, wenn man versucht PHP- oder Shell-Variablen zu verwenden, oder Backslashes zum Maskieren verwendet. Sie wurden gewarnt!

Hinweis:

-r ist in der CLISAPI verfügbar, nicht jedoch in der CGI-SAPI.

Hinweis:

Diese Option ist für sehr einfachen Code gedacht, weshalb einige Direktiven wie etwa auto_prepend_file und auto_append_file in diesem Modus ignoriert werden.

-B--process-begin

PHP-Code, der ausgeführt werden soll, bevor stdin ausgewertet wird.

-R--process-code

PHP-Code, der für jede Eingabezeile ausgeführt werden soll.

Es gibt zwei spezielle Variablen in diesem Modus: $argn und $argi. $argn enthält die Zeile, die PHP gerade verarbeitet und $argi enthält die Zeilennummer.

-F--process-file

PHP-Datei, die für jede Eingabezeile ausgeführt werden soll.

-E--process-end

PHP-Code, der nach der Verarbeitung der Eingabe ausgeführt werden soll.

Beispiel #5 Nutzung der Optionen -B, -R und -E, um die Anzahl der Zeilen in einem Projekt zu zählen.

 $ find my_proj | php -B '$l=0;' -R '$l += count(@file($argn));' -E 'echo "Zeilen insgesamt: $l\n";' Zeilen insgesamt: 37328 
-S--server

Startet den eingebauten Webserver.

-t--docroot Gibt den Document-Root (Wurzelverzeichnis der Dokumente) für den eingebauten Webserver an.
-s--syntax-highlight und --syntax-highlighting

Den Quelltext mit farblich hervorgehobener Syntax anzeigen.

Diese Option verwendet den internen Mechanismus zum Parsen von Dateien, um eine HTML-Version mit Syntax-Highlighting auf die Standardausgabe zu schreiben. Beachten Sie, dass sie nur einen Block mit den HTML-Tags <code> [...] </code> erzeugt, jedoch keine HTML-Header.

Hinweis:

Diese Option funktioniert nicht zusammen mit -r.

-v--version

Beispiel #6 Nutzung von -v, um den SAPI-Namen, sowie die PHP- und Zend-Version zu ermitteln

 $ php -v PHP 5.3.1 (cli) (built: Dec 11 2009 19:55:07) Copyright (c) 1997-2009 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2009 Zend Technologies 
-w--strip

Den Quelltext ohne Kommentare und Leerzeichen anzeigen.

Hinweis:

Diese Option funktioniert nicht zusammen mit -r.

-z--zend-extension

Eine Zend-Erweiterung laden. Wenn nur ein Dateiname angegeben wird, versucht PHP, die Erweiterung aus dem momentanen Standard-Bibliotheken-Pfad auf Ihrem System zu laden (auf Linux-Systemen normalerweise in /etc/ld.so.conf angegeben). Wenn ein Dateiname mit absoluter Pfadinformation übergeben wird, wird der Bibliotheken-Pfad des Systems nicht verwendet. Ein relativer Dateiname mit Pfadinformationen wird PHP veranlassen, zu versuchen, die Erweiterung in einem Pfad relativ zum aktuellen Verzeichnis zu laden.

 --ini

Zeigt die Namen der Konfigurationsdateien und die durchsuchten Verzeichnisse.

Beispiel #7 --ini-Beispiel

$ php --ini Configuration File (php.ini) Path: /usr/dev/php/5.2/lib Loaded Configuration File: /usr/dev/php/5.2/lib/php.ini Scan for additional .ini files in: (none) Additional .ini files parsed: (none)
--rf--rfunction

Zeigt Informationen über die angegebene Funktion oder Klassenmethode (z. B. Anzahl und Namen der Parameter).

Diese Option ist nur verfügbar, wenn PHP mit Reflection-Unterstützung kompiliert wurde.

Beispiel #8 Einfache --rf-Nutzung

$ php --rf var_dump Function [ <internal> public function var_dump ] { - Parameters [2] { Parameter #0 [ <required> $var ] Parameter #1 [ <optional> $... ] } }
--rc--rclass

Zeigt Inforationen über die angegebene Klasse (Liste der Konstanten, Eigenschaften und Methoden).

Diese Option ist nur verfügbar, wenn PHP mit Reflection-Unterstützung kompiliert wurde.

Beispiel #9 --rc-Beispiel

$ php --rc Directory Class [ <internal:standard> class Directory ] { - Constants [0] { } - Static properties [0] { } - Static methods [0] { } - Properties [0] { } - Methods [3] { Method [ <internal> public method close ] { } Method [ <internal> public method rewind ] { } Method [ <internal> public method read ] { } } }
--re--rextension

Zeigt Informationen über die angegebene Erweiterung (Liste der php.ini-Optionen, definierte Funktionen, Konstanten und Klassen).

Diese Option ist nur verfügbar, wenn PHP mit Reflection-Unterstützung kompiliert wurde.

Beispiel #10 --re-Beispiel

$ php --re json Extension [ <persistent> extension #19 json version 1.2.1 ] { - Functions { Function [ <internal> function json_encode ] { } Function [ <internal> function json_decode ] { } } }
--rz--rzendextension

Zeigt Konfiguration der angegebenen Zend-Erweiterung an (entspricht der von phpinfo() zurückgegebenen Information).

--ri--rextinfo

Zeigt die Konfiguration der angegebenen Erweiterung an (entspricht der von phpinfo() zurückgegebenen Information). Die Konfiguration des Sprachkerns kann über den speziellen Erweiterungsnamen "main" ermittelt werden.

Beispiel #11 --ri-Beispiel

$ php --ri date date date/time support => enabled "Olson" Timezone Database Version => 2009.20 Timezone Database => internal Default timezone => Europe/Oslo Directive => Local Value => Master Value date.timezone => Europe/Oslo => Europe/Oslo date.default_latitude => 59.930972 => 59.930972 date.default_longitude => 10.776699 => 10.776699 date.sunset_zenith => 90.583333 => 90.583333 date.sunrise_zenith => 90.583333 => 90.583333

Hinweis:

Die Optionen -rBRFEH, --ini und --r[fcezi] sind nur für CLI verfügbar.

To Top