千家信息网

php自定义中文字符串截取函数substr_for_gb2312及substr_for_utf8怎么用

发表于:2025-01-16 作者:千家信息网编辑
千家信息网最后更新 2025年01月16日,这篇文章主要介绍了php自定义中文字符串截取函数substr_for_gb2312及substr_for_utf8怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,
千家信息网最后更新 2025年01月16日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安全错误 数据库的锁怎样保障安全 网络安全源NAT实验报告 网络安全审查期多久 域名备案服务器怎么解析 广州串联网络技术有限公司 北京路云天网络安全研究院 美国的互联网科技创新 针算机网络技术 国家网络安全宣传周视频材料 广州物联网软件开发费用 黎明之塔下载后进去没显示服务器 网络安全院士课题组招聘 临夏州网络安全知识竞赛答题活动 关于网络安全的题目怎么取 魏都区互联网科技园 服务器散热片怎么加工的 河南好的软件开发诚信服务 单位网络安全工作总体规划 微信信息数据库一般会保留多久 陕西计算机网络技术专科分数线 电脑老是无网络安全 ns帐号可以登录不同服务器吗 金华企业网络安全准入控制哪家好 网络安全想到了什么 吃鸡服务器登不上去显示324 scau数据库系统综合性实验 软件开发面试有几面 gui软件开发 idc2021服务器出货量 单位网络安全工作总体规划 网络安全屏障支撑
0