Bestimmen der Befehlszeilen- vs. HTTP-Ausführung in PHP
Eine häufige Aufgabe bei der PHP-Skriptentwicklung ist die Bestimmung der Art der Ausführungsumgebung, ob Das Skript wird über die Befehlszeile oder über HTTP ausgeführt. Dieses Wissen ist entscheidend, um Entscheidungen zur Ausgabeformatierung zu treffen und das Verhalten entsprechend anzupassen.
Die herkömmliche Methode zur Überprüfung der Existenz von SERVER['argc'] ist nicht zuverlässig, da es auch bei Verwendung von 'Apache' gefüllt werden kann 2.0-Handler-Server-API. Der kanonische Weg, diese Abfrage aufzulösen, ist die Verwendung der Funktion php_sapi_name().
if (php_sapi_name() == "cli") { // In cli-mode } else { // Not in cli-mode }
Die Funktion php_sapi_name() bietet eine breite Palette möglicher Rückgabewerte, darunter unter anderem aolserver, apache, apache2filter, apache2handler, caudium, cgi, cli und webjames. Eine vollständige Liste finden Sie in der PHP-Dokumentation.
Darüber hinaus enthält in PHP >= 4.2.0 eine vordefinierte Konstante PHP_SAPI denselben Wert wie php_sapi_name(). Durch die Verwendung dieser Konstante können Entwickler die Lesbarkeit und Wartbarkeit des Codes verbessern.
Durch die Einhaltung dieses kanonischen Ansatzes können PHP-Entwickler die Ausführungsumgebung ihrer Skripte zuverlässig bestimmen und so eine gezielte Ausgabeformatierung und maßgeschneiderte Verhaltensanpassungen ermöglichen.
Das obige ist der detaillierte Inhalt vonWie kann ich zuverlässig feststellen, ob mein PHP-Skript über die Befehlszeile oder über HTTP ausgeführt wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!