## 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
Option | Langform | Beschreibung
--- | --- | ---
-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 | Überprüft die Syntax, führt aber den angegebenen PHP-Code nicht aus. Wenn kein Dateiname angegeben ist, wird die Eingabe von der Standardeingabe verarbeitet, andernfalls wird jede angegebene Datei überprüft. Bei Erfolg wird der Text `No syntax errors detected in <filename>` auf der Standardausgabe ausgegeben. Bei einem Fehler wird zusätzlich zum internen Parser-Fehler der Text `Errors parsing <filename>` auf der Standardausgabe ausgegeben. Wenn in den angegebenen Dateien (oder der Standardeingabe) irgendwelche Fehler gefunden werden, wird der Shell-Rückgabecode auf `-1` gesetzt, andernfalls wird er auf `0` gesetzt. Diese Option findet keine fatalen Fehler (z. B. undefinierte Funktionen), die die Ausführung des Codes erfordern. Hinweis: Vor PHP 8.3.0 war es nur möglich, den Namen einer Datei anzugeben, die überprüft werden sollte. Hinweis: Diese Option funktioniert nicht zusammen mit der Option -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 CLI SAPI 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.

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open