php自定义中文字符串截取函数substr_for_gb2312及substr_for_utf8怎么用
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要介绍了php自定义中文字符串截取函数substr_for_gb2312及substr_for_utf8怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,
千家信息网最后更新 2026年10月31日php自定义中文字符串截取函数substr_for_gb2312及substr_for_utf8怎么用
这篇文章主要介绍了php自定义中文字符串截取函数substr_for_gb2312及substr_for_utf8怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
具体如下:
/**gb2312中文字符串截取 */function substr_for_gb2312($str,$start,$len=null) { $totlelength = strlen($str); //特例情况 if ($len == null) $len = $totlelength; if ($len ==0) return ""; if ($len >= $totlelength && $start == 0 ) return $str; if ($start > $totlelength) return ""; //分析$start if ($start < 0 ) //$start<0时,转化为$start>0时的定位. { if ( abs($start) >= $totlelength ) $start = 0; else $start = $totlelength - abs($start); } //确定起始位置,当起始位拆分某汉字时,返回值包含此汉字. if ($start > 0) { $i = $start-1; $flag = -1; while ($i >= 0) { if ( ord(substr($str,$i,1)) > 160) { $flag = -1*$flag; } else break; $i--; } if($flag==1) { $start = $start - 1; $len++; //保证不位移. } } $str = substr($str,$start);//截除字符串$str的$start位前的字符 $totlelength = strlen($str); //确定结束位置,当结束位拆分某汉字时,返回值不包含此汉字. if ($len<0) $len = $totlelength - abs($len); if ($len <= 0) return ""; $i=min($len,$totlelength); $i--; $flag = -1; while ($i >= 0) { if (ord(substr($str,$i,1))>160) { $flag=-1*$flag; } else break; $i--; } if($flag == 1) $len=$len-1; $subit=substr($str,0,$len); return $subit; }/******************************************************************* PHP截取UTF-8字符串,解决半字符问题。* 英文、数字(半角)为1字节(8位),中文(全角)为3字节* @return 取出的字符串, 当$len小于等于0时, 会返回整个字符串* @param $str 源字符串* $len 左边的子串的长度****************************************************************/function substr_for_utf($str,$len){for($i=0;$i<$len;$i++){$temp_str=substr($str,0,1);if(ord($temp_str) > 127){$i++;if($i<$len){$new_str[]=substr($str,0,3);$str=substr($str,3);}}else{$new_str[]=substr($str,0,1);$str=substr($str,1);}}return join($new_str);}?>/*带start位置的utf8截取函数*/function utf8_substr($string, $start, $length) { preg_match_all ('/[/x00-/x7F]|[/xC2-/xDF][/x80-/xBF]|[/xE0-/xEF][/x80-/xBF][/x80-/xBF]|[/xF0-/xF4][/x80-/xBF][/x80-/xBF][/x80-/xBF]/', $string, $rs); $out = ''; $size = count ($rs[0]); $end = $start + $length; if ($end > $size ) { $end = $size; } for ($i = $start; $i < $end; $i++) { $out .= $rs[0][$i]; } return $out;}感谢你能够认真阅读完这篇文章,希望小编分享的"php自定义中文字符串截取函数substr_for_gb2312及substr_for_utf8怎么用"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
字符
字符串
中文
篇文章
汉字
函数
位置
字节
起始
价值
兴趣
半角
同时
情况
数字
更多
朋友
特例
知识
编带
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
咖啡
手冲咖啡和咖啡机区别
华服互联网科技靠谱吗
菲比寻常互联网科技
撒么互联网科技公司
天扬科技互联网广告
科技赋能互联网健康
茂名市互联网科技产业园
宁夏众和广鑫互联网科技有限公司
互联网科技与管理
江阴互联网智能科技产品进口
互联网科技扶贫时间
深圳市罗太互联网科技有限公司
长沙互联网科技
广东工业互联网大赛深圳学泰科技
四川互联网展示科技馆设计
山东大美朱楼互联网科技有限公司
互联网科技职业技能培训学校
马化腾互联网科技教学
广州全民伙伴互联网科技有限公司
湖南永感互联网科技有限公司
互联网科技官网
互联网科技会
上海挚品互联网科技
江阴互联网智能科技产品进口
深圳无忧互联网科技
互联网公司属于科技吗
互联网科技收购价值
伍佰万互联网科技是干嘛的
互联网科技创业有什么好项目