if (strncasecmp(PHP_OS, 'WIN', 3) == 0) {
echo 'This is a server using Windows!';
} else {
echo 'This is a server not using Windows!';
}
vypadá trochu elegantněji než přijímaná odpověď. Výše uvedená detekce pomocí DIRECTORY_SEPARATOR je však nejrychlejší.
Můžete zkontrolovat, zda je oddělovač adresářů /
(pro unix/linux/mac) nebo \
na oknech. Název konstanty je DIRECTORY_SEPARATOR
.
if (DIRECTORY_SEPARATOR === '/') {
// unix, linux, mac
}
if (DIRECTORY_SEPARATOR === '\\') {
// windows
}
Zkontrolujte hodnotu PHP_OS
konstantní.
V systému Windows vám poskytne různé hodnoty, například WIN32
, WINNT
nebo Windows
.
Viz také:Možné hodnoty pro:PHP_OS a php_uname
:
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
echo 'This is a server using Windows!';
} else {
echo 'This is a server not using Windows!';
}
Počínaje PHP 7.2.0 můžete detekovat běžící O.S. pomocí konstanty PHP_OS_FAMILY
:
if (PHP_OS_FAMILY === "Windows") {
echo "Running on Windows";
} elseif (PHP_OS_FAMILY === "Linux") {
echo "Running on Linux";
}
Možné hodnoty naleznete v oficiální dokumentaci PHP.