如何利用PHP来截取一段中文字符串而不出现乱码
答案:1 悬赏:60 手机版
解决时间 2021-04-19 10:42
- 提问者网友:浪荡绅士
- 2021-04-18 17:40
如何利用PHP来截取一段中文字符串而不出现乱码
最佳答案
- 五星知识达人网友:蕴藏春秋
- 2021-04-18 18:03
function substr_cut($str_cut,$length = 30){
if (strlen($str_cut) >; $length){
for($i=0; $i < $length; $i++)
if (ord($str_cut[$i]) >; 128) $i++;
$str_cut = substr($str_cut,0,$i) . "...";
}
return $str_cut;
}
说明:
程序的关键语句是:
for($i=0; $i < $length; $i++)
if (ord($str_cut[$i]) >; 128) $i++;
$str_cut = substr($str_cut,0,$i) . "...";
如果字符的ASCII码大于128,说明当前字符和下一个字符是属于一个汉字的。
则,$i++ 跳过对下一个字符的判断。
再结合循环中的 $i++ ,实际上,当遇到一个汉字时,$i 就会加 2 ,从而正确的跳过汉字。
最终实现的效果是,$i 变量指向的要么是半角的字符,要么是全角汉字的首字符,不会指向
全角汉字的第二个字符,所以,当$i >;= $length 时,循环结束,使用
$str_cut = substr($str_cut,0,$i) . "..."; 截取字符时自然也就不会出现乱码了。
本人在写一个程序时需要利用PHP从一段字符串中截取指定长度的一段字符下来。以前在写ASP的时候,参考动网的程序写过类似的程序,不过,还没用PHP写过。
想偷懒,看有不有现成的代码可以用。于是,在GOOGLE中输入:PHP 截断字符 后查找到一段代码。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯