|
|
<?php
namespace App\Service\v3\Implementations;
use App\Service\v3\Interfaces\HelperServiceInterface;
class HelperService implements HelperServiceInterface{
public function makeNumCode($length) { // 获取验证码
$codeArr = array_map(function ($item) { return mt_rand(0,9); }, array_pad([], $length, 0));
// 返回验证码
return implode('', $codeArr); }
/** * 请求参数判空 * @param mixed $var 参数 * @return bool */ public function nonempty($var) { return ! ( isset($var) && $var && !empty($var) && !is_null($var) && $var != 'undefined' && $var != 'unknown' && $var != 'null' && $var != 'false' ); }
public function filterEmoji($str) { $str = preg_replace_callback( '/./u', function (array $match) { return strlen($match[0]) >= 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; } } }}
|