如何通过PHP获得Ubuntu版本?

如何通过PHP获得Ubuntu版本?,php,Php,如果我尝试phpinfo()我看到系统是: Linux php56-web-68 4.4.0-142-generic #168-Ubuntu 但我不知道Ubuntu是什么版本?是14.04还是16.04还是别的什么 有没有一种方法可以通过标准PHP获取这些信息?如果您想通过终端检查ubuntu版本,可以使用下面的命令进行检查 lsb_release -a 若你们想通过终端检查ubuntu版本,你们可以用下面的命令检查 lsb_release -a 您可以使用shell_exec()调用sh

如果我尝试
phpinfo()
我看到系统是:

Linux php56-web-68 4.4.0-142-generic #168-Ubuntu
但我不知道Ubuntu是什么版本?是14.04还是16.04还是别的什么


有没有一种方法可以通过标准PHP获取这些信息?

如果您想通过终端检查ubuntu版本,可以使用下面的命令进行检查

lsb_release -a

若你们想通过终端检查ubuntu版本,你们可以用下面的命令检查

lsb_release -a

您可以使用shell_exec()调用shell命令

分发服务器ID:Ubuntu

说明:Ubuntu 18.04.3 LTS

发行日期:18.04

代号:仿生


您可以从中解析所需的信息。

您可以使用shell_exec()调用shell命令

分发服务器ID:Ubuntu

说明:Ubuntu 18.04.3 LTS

发行日期:18.04

代号:仿生


您可以从中解析所需的信息。

使用此命令即可

$ubuntu\u version=explode(“\t”,shell\u exec('lsb\u release-a | grep release'))[1];

使用此命令可以飞行

$ubuntu\u version=explode(“\t”,shell\u exec('lsb\u release-a | grep release'))[1];

另一种选择是使用
cat/etc/lsb release
命令,并将其输入PHP的
shell\u exec

shell_exec
应产生类似的结果:

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.1 LTS"
之后,只需使用
parse_ini_string
解析输出,然后返回一个数组

这是一条单行线:

echo parse_ini_string(shell_exec('cat /etc/lsb-release'))['DISTRIB_RELEASE'];
旁注:刚刚在我的ec2实例上测试过,它产生了
18.04

@jenesaisquoi建议的比上一个答案更好的版本:

echo shell_exec('lsb_release -sr'); // 18.04

另一种选择是使用
cat/etc/lsb release
命令,并将其输入PHP的
shell\u exec

shell_exec
应产生类似的结果:

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.1 LTS"
之后,只需使用
parse_ini_string
解析输出,然后返回一个数组

这是一条单行线:

echo parse_ini_string(shell_exec('cat /etc/lsb-release'))['DISTRIB_RELEASE'];
旁注:刚刚在我的ec2实例上测试过,它产生了
18.04

@jenesaisquoi建议的比上一个答案更好的版本:

echo shell_exec('lsb_release -sr'); // 18.04

我需要的是PHP而不是shell。我需要的是PHP而不是shell。嗯,根本没有输出。这个命令是不允许的吗?这应该是web服务器/php进程允许的。嗯,根本没有输出。可以不允许此命令吗?web服务器/php进程应该允许此命令。没有输出。有没有其他方法可以获得这些信息?没有输出。还有其他方法可以得到这些信息吗?哇,你是我的英雄。你的解决方案奏效了。输出为16.04。真是松了一口气。不过,有趣的是,这个线程中其他人的其他直接shell_exec()建议不起作用,输出结果也没什么。但是您的parse_ini_字符串起作用了,所以再次感谢。@jilocoiner它不起作用,因为返回的预期值是多行的,您需要进一步解析输出,因此
parse_ini_字符串
用法很好helped@jenesaisquoi这个<代码>echo shell_exec('lsb_release-sr')解析ini文件('/etc/lsb release')有什么问题?在这种情况下,你为什么要使用cat和shell exec?哇,你是我的英雄。你的解决方案奏效了。输出为16.04。真是松了一口气。不过,有趣的是,这个线程中其他人的其他直接shell_exec()建议不起作用,输出结果也没什么。但是您的parse_ini_字符串起作用了,所以再次感谢。@jilocoiner它不起作用,因为返回的预期值是多行的,您需要进一步解析输出,因此
parse_ini_字符串
用法很好helped@jenesaisquoi这个<代码>echo shell_exec('lsb_release-sr')解析ini文件('/etc/lsb release')有什么问题?在这种情况下,为什么要使用cat和shell exec?