目前fawe使用了thinkphp等作为开发底层,同时还保留了传统的代码结构,全局函数还是预备了不少,非常有怀旧感,有点意思的是取中文字符长度,在mysql中如varchar(255)是将中\英文字符都按一位算,但在php中如常用的utf8下英文字符是按一位算,中文字符是按3位算;fanwe统一了js和php下的中文字符,都按2位算,关键就是全局函数getStrLen,将3位中文字符都转成2位算长度
function getStrLen($str)
{
$length = strlen(preg_replace('/[\x00-\x7F]/', '', $str));
if ($length)
{
return strlen($str) - $length + intval($length / 3) * 2;
}
else
{
return strlen($str);
}
}
而js对应的是
$.getStringLength=function(str)
{
str = $.trim(str);
if(str=="")
return 0;
var length=0;
for(var i=0;i <str.length;i++)
{
if(str.charCodeAt(i)>255)
length+=2;
else
length++;
}
return length;
}
另随机数生成函数,参数$numeric为1则生成的字符为数字,默认生成字母和数字的随机符
function random($length, $numeric = 0)
{
$seed = base_convert(md5(microtime().$_SERVER['DOCUMENT_ROOT']), 16, $numeric ? 10 : 35);
$seed = $numeric ? (str_replace('0', '', $seed).'012340567890') : ($seed.'zZ'.strtoupper($seed));
$hash = '';
$max = strlen($seed) - 1;
for($i = 0; $i < $length; $i++)
{
$hash .= $seed{mt_rand(0, $max)};
}
return $hash;
}