Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann festgestellt werden, ob ein PHP-Skript in der Befehlszeile oder über HTTP ausgeführt wird?

Wie kann festgestellt werden, ob ein PHP-Skript in der Befehlszeile oder über HTTP ausgeführt wird?

Barbara Streisand
Barbara StreisandOriginal
2024-11-15 18:33:03926Durchsuche

How to Determine if a PHP Script is Running on the Command Line or via HTTP?

Bestimmen des Skriptausführungsmodus in PHP

Die Bestimmung, ob ein PHP-Skript über die Befehlszeile oder HTTP ausgeführt wird, ist für verschiedene Zwecke von entscheidender Bedeutung. wie etwa die Ausgabeformatierung. Historisch gesehen galt die Überprüfung der Variablen SERVER['argc'] als kanonischer Ansatz. Allerdings erweist sich diese Methode bei Verwendung der Apache 2.0 Handler-Server-API als unzuverlässig, da sie SERVER['argc'] auch bei der Befehlszeilenausführung auffüllt.

Die empfohlene und robustere Methode ist die Verwendung der Funktion php_sapi_name() . Es gibt einen String zurück, der den Typ der Schnittstelle zwischen dem Webserver und PHP angibt. Beispiele hierfür sind:

  • „cli“ für die Befehlszeilenausführung
  • „apache2handler“ für die Ausführung der Apache 2.0-Handler-Server-API

Beispielcode :

if (php_sapi_name() == "cli") {
    // In cli-mode
} else {
    // Not in cli-mode
}

Hinweise zur Dokumentation:

Die Dokumentation der Funktion php_sapi_name() bietet weitere Informationen:

  • Mögliche Rückgabewerte: Obwohl die Funktion nicht erschöpfend ist, kann sie Werte wie „Apache“, „cgi“, „nsapi“ und „tux“ zurückgeben, die verschiedene Server-APIs darstellen.
  • PHP >= 4.2.0: PHP hat eine vordefinierte Konstante eingeführt, PHP_SAPI, die denselben Wert wie php_sapi_name() enthält.

Das obige ist der detaillierte Inhalt vonWie kann festgestellt werden, ob ein PHP-Skript in der Befehlszeile oder über HTTP ausgeführt wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn