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安全错误
数据库的锁怎样保障安全
精品咖啡豆
科技和互联网公司
北京互联网科技有限公司
互联网科技集团
九亚互联网科技
深圳齐家互联网科技
互联网 视角下的科技创新
上海万想互联网科技
大白互联网科技
成都狮子座互联网科技
左右互联网络科技
博兴的互联网电子科技公司
西藏七维空间互联网科技有限公司
浙江互联网科技研学营
互联网与医疗科技
深圳育鹏互联网科技有限公司招聘
世界互联网领先科技成果获奖
互联网科技公司营业执照怎么办理
深圳无忧互联网科技
云南省自由互联网科技有限公司
新华互联网科技
互联网科技缩写
广州紫鲸互联网科技
互联网科技中介
小米互联网科技园设置
广州恒生互联网科技有限
厦门比较好的科技互联网公司
元气玛特互联网科技公司是外包吗
云南省自由互联网科技有限公司
科技美学互联网 艺术