我一直在用这个......
echo PHP_VERSION;
Run Code Online (Sandbox Code Playgroud)
...显示在服务器上运行的PHP版本,通常显示类似...
5.4.6.1
Run Code Online (Sandbox Code Playgroud)
但我刚刚发现,在某些服务器上,我获得的版本号超过版本号,而是显示:
5.4.6.1ububtu1.8
Run Code Online (Sandbox Code Playgroud)
有没有办法可以得到数字?
原因是我需要检查PHP的版本并显示一条消息,比如......
$phpversion = PHP_VERSION;
if($phpversion >= "5.5") {
echo "All good";
} else {
echo "Your version of PHP is too old";
}
Run Code Online (Sandbox Code Playgroud)
...但是当然如果$ phpversion包含除数字之外的任何内容,那么此脚本将无法正常工作.
提前致谢.
获取完整版(5.4.6.1)
<?php
preg_match("#^\d+(\.\d+)*#", PHP_VERSION, $match);
echo $match[0];
Run Code Online (Sandbox Code Playgroud)
它将在您的示例中返回5.4.6.1
根据需要获取版本(5.4)
preg_match("#^\d.\d#", "5.4.6.1ububtu1.8", $match);
echo $match[0];
Run Code Online (Sandbox Code Playgroud)
它将在您的示例中返回5.4
if (version_compare(phpversion(), '5.5.0', '>=')) {
echo "All good";
} else {
echo "Your version of PHP is too old";
}
Run Code Online (Sandbox Code Playgroud)
测试脚本:
<?php
echo PHP_VERSION;
echo PHP_EOL;
echo phpversion();
echo PHP_EOL;
echo version_compare(phpversion(), '5.5.0', '>=') ?: "false";
echo PHP_EOL;
echo version_compare(phpversion(), '5.6.0', '>=') ?: "false";
echo PHP_EOL;
echo version_compare(phpversion(), '5.7.0', '>=') ?: "false";
echo PHP_EOL;
echo version_compare('5.4.6.1ububtu1.8', '5.4.0', '>=') ?: "false";
echo PHP_EOL;
echo version_compare('5.4.6.1ububtu1.8', '5.5.0', '>=') ?: "false";
?>
Run Code Online (Sandbox Code Playgroud)
输出:
$ php test.php
5.6.4-1+deb.sury.org~trusty+1
5.6.4-1+deb.sury.org~trusty+1
1
1
false
1
false
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2625 次 |
| 最近记录: |