问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何利用PHP来截取一段中文字符串而不出现乱码

发布网友 发布时间:2022-04-26 21:19

我来回答

1个回答

热心网友 时间:2022-04-06 08:19

/*
功能:截取全角和半角混合的字符串以避免乱码
参数:
$str_cut需要截断的字符串
$length  允许字符串显示的最大长度

*/

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 截断字符 后查找到一段代码。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
八月中国最凉快的地方 八月份哪里最凉快,去哪旅游好?美丽的地方 乱字同韵字是什么意思 华硕笔记本电脑触摸板怎么开笔记本电脑触摸板怎么开启和关闭_百度知 ... 陕西职务侵占案立案准则 结婚后我的恋情维系了十年,怎么做到的? 玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 php中如何截取中文字符串 PHP截取中文字符问题 [php]如何在PHP中截取中文字串无乱码 php 中文字符串截取问题 php 怎么截取汉字字符串? php关于截取中文字符串的问题 php 截取UTF-8中文字符串问题 我想知道上海嘉定区的建设银行有周六上班的么?工作时间是几点到几点?最好可以告诉我准确地址 十 word进程不退出,占用高CPU word2013关闭后仍残留进程占用大量CPU 打开word文档时cpu占用有多大 求助!!为什么我用WORD文档的时候特别占电脑CPU呢? 为什么打开word文档CPU使用率就会很高?占内存不大。所以应该不是中毒现象、、 WORD占用CPU 90%多 为何打开WORD后CPU占用率一直都在50%以上? 员工考勤管理系统 国内外发展状况 电脑的word每一次打开,后台都会有一个click to run占用cpu? 帮公司员工办就业登记信息时,系统出现此人在原单位存在未处理就业登记数据 word 文档占CPU内存大得很 上海招退工和劳动合同登记备案网上,输入好员工招工信息,确认后,却显示招工登记信息保存失败,为什么 php 怎么截取字符前面几个字符 广汽埃安Y疑似量产版实车曝光 造型回顾“理性” PHP指定截取字符串中的中英文或数字字符的实例分享 国产车越来越花哨了,你喜欢广汽埃安AIONY这款车吗? 荧光轮毂巨骚气,广汽Aion Y(埃安Y)亮相,多彩配色闪耀全场 php 截取两个中文字中间的字符串 怎么实现? 广汽埃安Y有几种车身颜色? 2020广州车展:抢先实拍广汽埃安Y 造型科幻/2021年正式上市 请问下php怎么处理截取字符串出现的乱码问题 广汽埃安全新SUV亮相广州车展,并正式命名为埃安Y php截取一段字符串中第一个出现的数字或字母或冒号前面的中文汉字的语... 号称“没有对手”?广汽埃安Y明年就能买 埃安y怎么关车 埃安y流量收费吗 广汽埃安y后排座椅怎么能翻起来 埃安y点烟器有吗? 埃安y白天怎么关闭尾灯 埃安y低配是钢圈吗 埃安Y显示感叹号 求word电子试卷制作软件,或者帮我制作一下也可以