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

Barbara Streisand
Freigeben: 2024-11-15 18:33:03
Original
804 Leute haben es durchsucht

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
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage