Bei der Entwicklung von PHP -Anwendungen ist häufig die Systeminformationen des Servers für das Debuggen oder Optimieren erforderlich. PHP bietet eine sehr nützliche Funktion PHP_uname () , mit der wir relevante Informationen über das System erhalten können, z. B. Betriebssystemname, Versionsnummer usw. Heute werden wir diskutieren, wie PHP_uname () effektiv verwendet wird, um Systeminformationen zu erhalten, insbesondere wie man beim Schreiben allgemeiner Skripte nach verschiedenen Betriebssystemen anpasst.
php_uname () ist eine integrierte PHP-Funktion, die hauptsächlich zur Rückgabe detaillierter Informationen des Serverbetriebssystems verwendet wird. Durch diese Funktion können wir die Serverumgebung, in der PHP -Skripte ausgeführt werden, leicht verstehen, um eine entsprechende Optimierung oder Debuggierung zu erzielen. Diese Funktion gibt eine Zeichenfolge zurück, die den Namen des Betriebssystems, die Versionsnummer, die Hardwarearchitektur und andere Informationen enthält.
$system_info = php_uname();
echo $system_info;
Nach dem Aufrufen des obigen Code kann etwas ähnliches wie folgt zurückgegeben werden:
Linux myserver 5.4.0-42-generic #46-Ubuntu SMP Thu Jul 9 14:58:19 UTC 2020 x86_64
Dies umfasst Informationen wie den Betriebssystemtyp (Linux), den Hostnamen (MyServer), die Kernel-Version (5.4.0-42-Generikum) und die Hardwarearchitektur (x86_64).
Die Funktion php_uname () kann einen optionalen Parameter empfangen, der die Rückgabe verschiedener Arten von Informationen angibt. Insbesondere kann dieser Parameter die folgenden Werte sein:
A : Gibt detaillierte Informationen wie Betriebssystemname, Hostname, Kernelversion, Hardwarearchitektur usw. zurück (Standardwert).
S : Gibt nur den Namen des Betriebssystems zurück (zum Beispiel: Linux, Windows, Darwin usw.).
R : Gibt die Versionsnummer des Betriebssystems zurück.
V : Gibt die Versionsinformationen des Betriebssystems zurück.
M : Gibt den Hardware -Architekturtyp zurück (zum Beispiel: x86_64, ARM64 usw.).
echo php_uname('s'); // Ausgangsbetriebssystemname
echo php_uname('r'); // Ausgangsbetriebssystemversion
echo php_uname('m'); // Ausgabe -Hardware -Architekturtyp
Die Systeminformationen, die über PHP_uname () erhalten wurden, können nach verschiedenen Betriebssystemen angepasst werden. Wenn Sie beispielsweise ein anderes Betriebssystem in einer plattformübergreifenden PHP-Anwendung verwenden, müssen Sie möglicherweise verschiedene Pfadabschlüsse verarbeiten oder verschiedene Systembefehle ausführen.
$os = php_uname('s'); // Holen Sie sich den Namen des Betriebssystems
if (strpos($os, 'Windows') !== false) {
// im Fall vonWindowsSystem,Verwenden Sie Backslashes als Pfadabscheider
$path_separator = '\\';
} else {
// Ansonsten verwenden Sie Vorwärtsschrägstrich
$path_separator = '/';
}
echo "Das Pfadabscheider ist: " . $path_separator;
$os = php_uname('s'); // Holen Sie sich den Namen des Betriebssystems
if (strpos($os, 'Windows') !== false) {
// im Fall vonWindowsSystem,Verwenden Sie das Befehlszeilenwerkzeug
$command = 'dir';
} else {
// Ansonsten verwendenUnix类System的命令
$command = 'ls -l';
}
exec($command, $output);
echo implode("\n", $output); // Ausgangsausführungsergebnis Ausgabe
Obwohl PHP_uname () sehr nützlich ist, können in einigen Fällen Systeminformationen das Erhalten von sensiblen Informationen des Servers, insbesondere der Betriebssystemversion usw., auslaufen. Daher ist es in einer Produktionsumgebung am besten, diese Informationen an Benutzer zu vermeiden. Erwägen Sie, die erhaltenen Systeminformationen auf Protokolldateien einzuschränken, auf die nur für Administratoren zugegriffen werden können, oder das Hinzufügen geeigneter Berechtigungsüberprüfungen zum Skript.
In der tatsächlichen Entwicklung kann nach Erhalt von Systeminformationen möglicherweise eine bestimmte URL gemäß der Systemumgebung generiert werden. Stellen Sie beispielsweise gemäß verschiedenen Betriebssystemen eine Verbindung zu verschiedenen Serverressourcen her.