<?php 


/** 
***************************************************
*欢迎使用免费版SiteTeam企业建站软件！
*这是一个专业为搜索引擎营销而设计的，极稳定、极易维护的建站软件！
*官方客服：help@php.net.cn
*官方下载网址：http://www.SiteTeam.cn 
***************************************************
**/




 if (!function_exists('version_compare')) { function version_compare($version1, $version2, $operator = '<') { if (!is_scalar($version1)) { user_error('version_compare() expects parameter 1 to be string, ' . gettype($version1) . ' given', E_USER_WARNING); return; } if (!is_scalar($version2)) { user_error('version_compare() expects parameter 2 to be string, ' . gettype($version2) . ' given', E_USER_WARNING); return; } if (!is_scalar($operator)) { user_error('version_compare() expects parameter 3 to be string, ' . gettype($operator) . ' given', E_USER_WARNING); return; } $v1 = explode('.', str_replace('..', '.', preg_replace('/([^0-9\.]+)/', '.$1.', str_replace(array('-', '_', '+'), '.', trim($version1))))); $v2 = explode('.', str_replace('..', '.', preg_replace('/([^0-9\.]+)/', '.$1.', str_replace(array('-', '_', '+'), '.', trim($version2))))); while (empty($v1[0]) && array_shift($v1)) {} while (empty($v2[0]) && array_shift($v2)) {} $versions = array( 'dev' => 0, 'alpha' => 1, 'a' => 1, 'beta' => 2, 'b' => 2, 'RC' => 3, '#' => 4, 'p' => 5, 'pl' => 5); $compare = 0; for ($i = 0, $x = min(count($v1), count($v2)); $i < $x; $i++) { if ($v1[$i] == $v2[$i]) { continue; } $i1 = $v1[$i]; $i2 = $v2[$i]; if (is_numeric($i1) && is_numeric($i2)) { $compare = ($i1 < $i2) ? -1 : 1; break; } if ($i1 == '#') { $i1 = ''; } elseif (is_numeric($i1)) { $i1 = '#'; } if ($i2 == '#') { $i2 = ''; } elseif (is_numeric($i2)) { $i2 = '#'; } if (isset($versions[$i1]) && isset($versions[$i2])) { $compare = ($versions[$i1] < $versions[$i2]) ? -1 : 1; } elseif (isset($versions[$i1])) { $compare = 1; } elseif (isset($versions[$i2])) { $compare = -1; } else { $compare = 0; } break; } if ($compare == 0) { if (count($v2) > count($v1)) { if (isset($versions[$v2[$i]])) { $compare = ($versions[$v2[$i]] < 4) ? 1 : -1; } else { $compare = -1; } } elseif (count($v2) < count($v1)) { if (isset($versions[$v1[$i]])) { $compare = ($versions[$v1[$i]] < 4) ? -1 : 1; } else { $compare = 1; } } } if (func_num_args() > 2) { switch ($operator) { case '>': case 'gt': return (bool) ($compare > 0); break; case '>=': case 'ge': return (bool) ($compare >= 0); break; case '<=': case 'le': return (bool) ($compare <= 0); break; case '==': case '=': case 'eq': return (bool) ($compare == 0); break; case '<>': case '!=': case 'ne': return (bool) ($compare != 0); break; case '': case '<': case 'lt': return (bool) ($compare < 0); break; default: return; } } return $compare; } } ?>