= 4 ? '' : $match[0]; }, $str ); $search = array(" "," ","\n","\r","\t"); $replace = array("","","","",""); $str = str_replace($search, $replace, $str); return $str; } /* * 版本号比较 by sam 20170412 * @param $version1 版本A 如:5.3.2 * @param $version2 版本B 如:5.3.0 * @return int -1版本A小于版本B , 0版本A等于版本B, 1版本A大于版本B * * 版本号格式注意: * 1.要求只包含:点和大于等于0小于等于2147483646的整数 的组合 * 2.boole型 true置1,false置0 * 3.不设位默认补0计算,如:版本号5等于版号5.0.0 * 4.不包括数字 或 负数 的版本号 ,统一按0处理 * * @example: * if (versionCompare('5.2.2','5.3.0')<0) { * echo '版本1小于版本2'; * } */ function versionCompare($versionA,$versionB) { if ($versionA > 2147483646 || $versionB > 2147483646) { throw new Exception('版本号,位数太大暂不支持!', '101'); } $dm = '.'; $verListA = explode($dm, (string)$versionA); $verListB = explode($dm, (string)$versionB); $len = max(count($verListA), count($verListB)); $i = -1; while ($i++ < $len) { $verListA[$i] = intval(@$verListA[$i]); if ($verListA[$i] < 0) { $verListA[$i] = 0; } $verListB[$i] = intval(@$verListB[$i]); if ($verListB[$i] < 0) { $verListB[$i] = 0; } if ($verListA[$i] > $verListB[$i]) { return 1; } else if ($verListA[$i] < $verListB[$i]) { return -1; } else if ($i == ($len - 1)) { return 0; } } } }