php截取字符(按字符数截取),GBK中文
来源:昆明网页设计 日期:2010-07-07 阅读: 发表评论
/**
* strlen得到一个字符串的字节数,filesize得到的是一个文件的字数
*
* ---------------------------------------------------------------------
* 仅针对utf-8字符
*
* 用到的函数:
* ord() 函数:返回字符串第一个字符的 ASCII 值
* 提示:
* utf-8编码原理
* 第一个字节ASCII码>129的,它与它之后的1个字节一起组成一个utf-8字符,
*第一个字节ASCII码<=129的,一个字节组成一个utf-8字符
*/
function cutStr($str, $length = '') { // $length为字符个数,不是字节
if ($length != '') { // 如果$length不为空
$len = strlen($str); //得到字符长度
$strOk = '';
$i = 0; //字符长度
$n = 0; //字符个数
while ($i < $len && $n < $length) {
$ascii = ord($str{$i}); //得到当前字节的ASCII码
if ($ascii > 129) { // 大于129,是2个字节字符
$strOk .= substr($str, $i, 2);
$i += 2;
$n++;
} else { // 小于等于129,是1个字节字符
$strOk .= substr($str, $i, 1);
$i++;
$n++;
}
}
} else {
$strOk = $str;
}
return $strOk;
}
// 示例
$text = file_get_contents('test.txt'); //截取的字符串
echo cutStr($text);
发表评论评论列表(有 条评论)