字符串转换成打散的单个字符组成的数组
支持中文、英文、数字
支持中文、英文、数字
/**
* 可以统计中文字符串长度的函数
* @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;
}
精彩图集
精彩文章






