Heim >Backend-Entwicklung >PHP-Tutorial >Wie stelle ich fest, ob ein PHP-Skript über die Befehlszeile oder eine HTTP-Anfrage ausgeführt wird?

Wie stelle ich fest, ob ein PHP-Skript über die Befehlszeile oder eine HTTP-Anfrage ausgeführt wird?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-29 00:37:10931Durchsuche

How do I Determine if a PHP Script is Executed via Command Line or HTTP Request?

Unterscheidung der Befehlszeilenausführung von der HTTP-Ausführung in PHP

Es ist wichtig zu bestimmen, ob ein PHP-Skript über die Befehlszeile oder eine HTTP-Anfrage ausgeführt wird zum Anpassen von Ausgabeformaten. Obwohl die Überprüfung der Variable SERVER['argc'] wie ein gültiger Ansatz erscheint, ist sie selbst mit der Server-API „Apache 2.0 Handler“ von Apache nicht immer korrekt.

Die kanonische Methode zum Ausführen dieser Aufgabe ist php_sapi_name() Funktion.

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

Wie im PHP angegeben Dokumentation:

php_sapi_name gibt den Typ der Schnittstelle zwischen dem Webserver und PHP zurück.

Mögliche Rückgabewerte sind „Apache2handler“, „cgi“, „cli“, „ isapi“, „litespeed“ usw.

Alternativ können Sie die verwenden PHP_SAPI-Konstante, die den gleichen Wert wie php_sapi_name() hat, eingeführt in PHP-Version 4.2.0.

Das obige ist der detaillierte Inhalt vonWie stelle ich fest, ob ein PHP-Skript über die Befehlszeile oder eine HTTP-Anfrage 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