`
hongtoushizi
  • 浏览: 378793 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

php版本比较函数version_compare()

    博客分类:
  • php
php 
阅读更多

php中比较php版本,一般用version_compare()函数,帮助文档见:http://php.net/manual/en/function.version-compare.php
用途:Compares two "PHP-standardized" version number strings。
语法:
version_compare ( string $version1 , string $version2 [, string $operator ] )
具体描述:version_compare() compares two "PHP-standardized" version number strings. This is useful if you would like to write programs working only on some versions of PHP.

The function first replaces _, - and + with a dot . in the version strings and also inserts dots . before and after any non number so that for example '4.3.2RC1' becomes '4.3.2.RC.1'. Then it splits the results like if you were using explode('.', $ver). Then it compares the parts starting from left to right. If a part contains special version strings these are handled in the following order: any string not found in this list < dev < alpha = a < beta = b < RC = rc < # < pl = p. This way not only versions with different levels like '4.1' and '4.1.2' can be compared but also any PHP specific version containing development state.

    其中第三个可选参数是比较符:

If you specify the third optional operator argument, you can test for a particular relationship. The possible operators are: <, lt, <=, le, >, gt, >=, ge, ==, =, eq, !=, <>, ne respectively.

This parameter is case-sensitive, so values should be lowercase.

    返回值:

By default, version_compare() returns -1 if the first version is lower than the second, 0 if they are equal, and 1 if the second is lower.

 

When using the optional operator argument, the function will return TRUE if the relationship is the one specified by the operator, FALSE otherwise.

    从下面的例子,就可以很好地说明version_compare的用法:

<?php
if (version_compare(PHP_VERSION'6.0.0') >= 0) {
    echo 
'I am at least PHP version 6.0.0, my version: ' PHP_VERSION "\n";
}

if (
version_compare(PHP_VERSION'5.3.0') >= 0) {
    echo 
'I am at least PHP version 5.3.0, my version: ' PHP_VERSION "\n";
}

if (
version_compare(PHP_VERSION'5.0.0''>=')) {
    echo 
'I am using PHP 5, my version: ' PHP_VERSION "\n";
}

if (
version_compare(PHP_VERSION'5.0.0''<')) {
    echo 
'I am using PHP 4, my version: ' PHP_VERSION "\n";
}
?>

    最近在nagios的图表监控插件pnp安装中遇到一个错误提示:Kohana requires PHP 5.2 or newer.查看页面源码,发现如下语句:
version_compare(PHP_VERSION, '5.2', '<') and exit('Kohana requires PHP 5.2 or newer.');
也就是版本不满足就退出。

   
strcmp()的字符串比较函数,也可以进行比较,但像下面这样,就会出现错误:
4.1.10与4.1.2比较
strcmp(“4.1.10″, “4.1.2″); 会返回-1 错误
version_compare(“4.1.10″. “4.1.2″); 就会返回1 正确

转载自: http://ljhzzyx.blog.163.com/blog/static/3838031220106553216892/

分享到:
评论

相关推荐

    php获取一个对象(类)的所以方法(函数名)

    - `version_compare(PHP_VERSION, '5.2.6') === -1` 这行代码用于检查当前 PHP 版本是否低于 5.2.6。如果是,则使用 ReflectionClass;如果不是,则使用 `get_class_methods` 函数。 2. **创建 ReflectionClass ...

    Nucleus CMS 3.71.zip

    Nucleus CMS是一个用于管理一个或多个blog的工具,它采用PHP开发并需要MySQL数据库支持,可以安装一个单一的博客,或整个网络的博客。Nucleus CMS 3.71 更新日志:2017-05-30 ...ADD:nucleus_version_compare函数。

    php中json_encode不兼容JSON_UNESCAPED_UNICODE的解决方案

    PHP5.4才支持JSON_UNESCAPED_UNICODE这个参数,此参数是让中文字符在json_encode的时候不用转义,减少数据传输量。但在PHP5.3中,就得自己写个函数来实现,以下就是解决方法: ... if (version_compare

    Nucleus CMS v3.71.zip

    Nucleus是一个用于管理一个或多个blog的工具。它采用PHP4开发并需要MySQL数据库支持。Nucleus具有支持多个写作者,支持先预览 ...ADD:nucleus_version_compare函数。 Nucleus截图 相关阅读 同类推荐:站长常用源码

    php常用Output和ptions/Info函数集介绍

    version_compare函数用于比较两个PHP版本号,常用于版本控制相关的条件判断。 以上内容涵盖了PHP中输出控制和信息获取相关的函数集,这些函数在开发中起到重要作用,帮助开发者更好地控制输出内容以及获取运行时...

    为你总结一些php系统类函数

    29. **version_compare()**: 比较两个PHP版本号,用于版本控制和兼容性检查。 除了这些系统类函数,还有其他如`ob_flush()`, `flush()`, `eval()`, `exif_read_data()`, `dynamic function calls`, `C method in ...

    PHP is_subclass_of函数的一个BUG和解决方法

    if (version_compare(PHP_VERSION, '5.3.7', '&gt;=')) { return false; } // 如果$type不是一个接口,也不会有bug,所以直接返回false if (!interface_exists($type)) { return false; } // 使用...

    Discuz!X插件安装、卸载、升级脚本的设计

    if (version_compare(PHP_VERSION, '7.0.0', ')) { return false; // 不允许安装 } // 检查其他环境因素 // ... return true; // 允许安装 } ?&gt; ``` #### 插件授权协议与介绍 为了提高插件的透明度和用户...

    php5.4以下版本json不支持不转义内容中文的解决方法

    2. 通过version_compare()函数判断PHP的版本是否大于或等于5.4.0。 3. 如果PHP版本大于或等于5.4.0,可以直接使用内置的json_encode()函数,并传入JSON_UNESCAPED_UNICODE参数来实现中文不转义。 4. 如果PHP版本低于...

    magento2 请求流 中文 翻译

    - PHP 版本检查:`version_compare` 函数确保 PHP 版本不低于 5.5,否则会抛出错误并停止执行。 - 定义根目录的基本路径。 - 自动加载器初始化: - 第 16 行,加载 `vendor_path.php`,返回 "vendor" 目录。 - ...

    thinkphp讲义李炎恢版

    if (version_compare(PHP_VERSION, '5.3.0', ')) { die('require PHP &gt; 5.3.0!'); } // 开启调试模式(建议开发阶段开启,部署阶段注释掉或设为false) define('APP_DEBUG', true); // 定义应用目录 ...

    php代码-php中的注释

    &lt;?php if (version_compare(PHP_VERSION, '7.0.0', '&gt;=')) { ?&gt; &lt;?php // 这段代码只在PHP 7及以上版本运行 ?&gt; echo "Using PHP 7 or newer"; &lt;?php } else { ?&gt; &lt;?php // 在PHP 7以下版本运行的代码 ?&gt; echo ...

    PHP 读取大文件的X行到Y行内容的实现代码

    if (version_compare(PHP_VERSION, '5.1.0', '&gt;=')) { $count = $endLine - $startLine; $fp = new SplFileObject($filename, 'rb'); $fp-&gt;seek($startLine - 1); for ($i = 0; $i $count; ++$i) { $content[]...

    Thinkphp通过一个入口文件如何区分移动端和PC端

    在代码示例中,使用了`version_compare`函数来比较PHP版本。如果PHP版本低于5.3.0,那么直接通过`die()`函数终止程序并给出提示。这是一个基本的环境检测,确保应用能够在合适的环境下运行,以避免因为环境问题导致...

    ZendFramework中文文档

    AjaxContext 函数 7.8.4.4. FlashMessenger 7.8.4.4.1. 简介 7.8.4.4.2. Basic Usage Example 7.8.4.5. JSON 7.8.4.6. 转向器(Redirector) 7.8.4.6.1. 介绍 7.8.4.6.2. 基础用例 7.8.4.7. ViewRenderer ...

    linux 命令英文全称

    CVS(Current Version System)是一种版本控制系统(version control system)。 #### daemon=DiskAndExecutionMONitor daemon(Disk And Execution MONitor)指的是一种在后台运行的进程。 #### dc=DeskCalculator dc...

    Linux术语全称文本下载

    46. **cvs (Current Version System)**:版本控制系统。 47. **daemon (Disk And Execution MONitor)**:后台运行的服务或进程。 48. **dc (Desk Calculator)**:一个交互式的逆波兰记法计算器。 49. **dd (Disk ...

    Linux命令术语全称

    37. **cvs=Current Version System** - **含义**:版本控制系统。 - **用途**:管理源代码版本历史。 38. **daemon=Disk And Execution MONitor** - **含义**:守护进程。 - **用途**:在后台运行的服务或进程...

Global site tag (gtag.js) - Google Analytics