Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann man zuverlässig feststellen, ob ein PHP-Skript im Befehlszeilen- oder HTTP-Modus ausgeführt wird?

Wie kann man zuverlässig feststellen, ob ein PHP-Skript im Befehlszeilen- oder HTTP-Modus ausgeführt wird?

Susan Sarandon
Susan SarandonOriginal
2024-11-19 20:00:04849Durchsuche

How to Reliably Determine if a PHP Script Is Running in Command-Line or HTTP Mode?

Bestimmen der Befehlszeilen- vs. HTTP-Ausführung in PHP

In PHP ist es für die Ausgabe von entscheidender Bedeutung, zu bestimmen, ob ein Skript über die Befehlszeile oder über HTTP ausgeführt wird Formatierung und andere Zwecke. Die herkömmliche Methode zur Überprüfung des SERVER['argc']-Arrays ist nicht in allen Fällen zuverlässig, da es möglicherweise sogar während der HTTP-Ausführung gefüllt wird.

Die kanonische Lösung für dieses Problem ist die Verwendung der Funktion php_sapi_name() . Diese Funktion gibt den Schnittstellentyp zwischen dem Webserver und PHP zurück. Wenn der zurückgegebene Wert „cli“ ist, wird das Skript über die Befehlszeile ausgeführt, während jeder andere Wert eine HTTP-Ausführung anzeigt.

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

Wie in der PHP-Dokumentation erwähnt, kann php_sapi_name() verschiedene zurückgeben Werte abhängig von der Serverschnittstelle. Zu den gebräuchlichen Werten gehören „Apache“, „cgi-fcgi“, „nsapi“ und „litespeed“.

In PHP-Versionen 4.2.0 und höher gibt es auch eine vordefinierte Konstante PHP_SAPI, die denselben Wert hat als php_sapi_name(). Diese Konstante kann alternativ zur Funktion verwendet werden.

Das obige ist der detaillierte Inhalt vonWie kann man zuverlässig feststellen, ob ein PHP-Skript im Befehlszeilen- oder HTTP-Modus 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