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安全错误
数据库的锁怎样保障安全
咖啡网
互联网金融科技
互联网新科技
互联网科技的
互联网科技集团
互联网 的科技创新
致聘互联网科技
玖二柒互联网科技公司待遇
须眉科技是互联网公司吗
欧洲十大科技互联网公司
北京华百购互联网科技有限公司
互联网经济与金融科技
链环科技传统企业怎么转型互联网
爱医互联网络科技
济南有互联网科技公司吗
华中科技大学互联网的牛人
黑科技 体验场景 互联网大会
南通创西澳互联网科技有限公司
云鲸互联网络科技有限公司
唐山双旺合互联网科技产业园
河南真二互联网科技有限公司
互联网金融 金融科技
银优互联网科技有限公司
西安互联网科技公司
温州喔噻互联网科技有限公司
成都互联网科技公司100强
互联网还是高科技吗
世界互联网科技公司市值排名
南平创想时代互联网科技有限公司
好易买互联网科技