PHP jede Funktion nicht zur Verfügung stellt den Namen der Verteilung zu bekommen, ist ähnlich wie Linux Befehl uname
, bedeutet dies, es keine Informationen über die Verteilung selbst liefert.
Weder noch PHP_OS
geben Informationen. über die Verteilung aber den Betriebssystemtyp (z. B. Linux/Windows).
Ich denke, der beste Weg zu wissen, was OS/Verteilung zu lesen ist /etc/os-release
, die gute Sache ist diese Datei hat Leseberechtigung für alle Benutzer und die schlechte Sache ist es möglicherweise nicht auf Shared Hosting arbeiten.
Hier schrieb ich eine sehr einfache PHP-Funktion, die und os-release
in ein Array umwandeln lautet:
function getOSInformation()
{
if (false == function_exists("shell_exec") || false == is_readable("/etc/os-release")) {
return null;
}
$os = shell_exec('cat /etc/os-release');
$listIds = preg_match_all('/.*=/', $os, $matchListIds);
$listIds = $matchListIds[0];
$listVal = preg_match_all('/=.*/', $os, $matchListVal);
$listVal = $matchListVal[0];
array_walk($listIds, function(&$v, $k){
$v = strtolower(str_replace('=', '', $v));
});
array_walk($listVal, function(&$v, $k){
$v = preg_replace('/=|"/', '', $v);
});
return array_combine($listIds, $listVal);
}
Diese Funktion druckt etwas wie folgt aus:
Array
(
[name] => Ubuntu
[version] => 16.04.2 LTS (Xenial Xerus)
[id] => ubuntu
[id_like] => debian
[pretty_name] => Ubuntu 16.04.2 LTS
[version_id] => 16.04
[home_url] => http://www.ubuntu.com/
[support_url] => http://help.ubuntu.com/
[bug_report_url] => http://bugs.launchpad.net/ubuntu/
[version_codename] => xenial
[ubuntu_codename] => xenial
)
gehaltene og lykke [1]; -)
[1] Dänischer Ausdruck bedeutet viel Glück.
Wie konnte PHP_OS jemals „gearbeitet ganz gut "wenn es dir das OS PHP gibt, auf dem gebaut wurde? Es wird früher oder später brechen. – Pacerier