如何通过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?