目前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;
}