龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

php 字符串转换成打散的单个字符组成的数组

时间:2014-10-24 02:50来源:网络整理 作者:网络 点击:
分享到:
字符串转换成打散的单个字符组成的数组 [代码片段(73行)]
/**
* 可以统计中文字符串长度的函数
* @param $str 要计算长度的字符串
*/
function abslength($str)
{
    if(empty($str))
    {
        return 0;
    }
    if(function_exists('mb_strlen'))
    {
        return mb_strlen($str, 'utf-8');
    }
    else
    {
        preg_match_all("/./u", $str, $ar);
        return count($ar[0]);
    }
}

/*
* utf-8编码下截取中文字符串,参数可以参照substr函数
* @param $str 要进行截取的字符串
* @param $start 要进行截取的开始位置,负数为反向截取
* @param $end 要进行截取的长度
*/
function utf8_substr($str, $start = 0)
{
    if(empty($str))
    {
        return false;
    }
    if(function_exists('mb_substr'))
    {
        if(func_num_args() >= 3)
        {
            $end = func_get_arg(2);
            return mb_substr($str, $start, $end, 'utf-8');
        }
        else
        {
            mb_internal_encoding("UTF-8");
            return mb_substr($str, $start);
        }
    }
    else
    {
        $null = "";
        preg_match_all("/./u", $str, $ar);
        if(func_num_args() >= 3)
        {
            $end = func_get_arg(2);
            return join($null, array_slice($ar[0], $start, $end));
        }
        else
        {
            return join($null, array_slice($ar[0], $start));
        }
    }
}

function str_to_arr($str = '')
{
    $arr = array();
    $str_length = abslength($str);
    for($i = 0; $i < $str_length; $i++)
    {
        $arr[] = utf8_substr($str, $i, 1);
    }
    return $arr;
}
//该片段来自于http://outofmemory.cn
精彩图集

赞助商链接