我有一个PHP脚本,可以放在windows系统或linux系统上。在这两种情况下,我都需要运行不同的命令。
如何检测我所处的环境?(最好是一些PHP,而不是聪明的系统黑客)
更新
为了清楚起见,该脚本是从命令行运行的。
发布于 2011-05-04 13:39:22
您可以检查目录分隔符是/
(对于unix/linux/mac)还是windows上的\
。常量名称为DIRECTORY_SEPARATOR
。
if (DIRECTORY_SEPARATOR === '/') {
// unix, linux, mac
}
if (DIRECTORY_SEPARATOR === '\\') {
// windows
}
发布于 2012-07-23 08:25:11
if (strncasecmp(PHP_OS, 'WIN', 3) == 0) {
echo 'This is a server using Windows!';
} else {
echo 'This is a server not using Windows!';
}
看起来比公认的答案更优雅一些。不过,使用DIRECTORY_SEPARATOR进行上述检测是最快的。
发布于 2019-09-09 00:12:50
从PHP7.2.0开始,您可以使用常量PHP_OS_FAMILY
检测正在运行的操作系统
if (PHP_OS_FAMILY === "Windows") {
echo "Running on Windows";
} elseif (PHP_OS_FAMILY === "Linux") {
echo "Running on Linux";
}
有关其可能的值,请参阅official PHP documentation。
https://stackoverflow.com/questions/5879043
复制相似问题