• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php自定义中文字符串截取函数substr_for_gb2312及substr_for_utf8示例

php 搞代码 4年前 (2022-01-01) 21次浏览 已收录 0个评论

这篇文章主要介绍了php自定义中文字符串截取函数substr_for_gb2312及substr_for_utf8用法,结合实例形式分析了针对gb2312与utf-8编码的自定义中文字符串截取函数的实现与使用方法,需要的朋友可以参考下

本文实例讲述了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时的定位. { 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) { 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 127) { $i++; if($i /*带star<i style="color:transparent">来源gaodai$ma#com搞$$代**码网</i>t位置的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-/x BF]/', $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格式化美化的排版工具帮助大家在以后的PHP程序设计中进行代码排版:

php代码在线格式化美化工具:

http://tools.gaodaima.com/code/phpformat

另外,由于php属于C语言风格,因此下面这款工具同样可以实现php代码的格式化:

C语言风格/HTML/CSS/json代码格式化美化工具:
http://tools.gaodaima.com/code/ccode_html_css_json

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP数学运算技巧总结》、《php操作office文档技巧总结(包括word,excel,access,ppt)》、《PHP数组(Array)操作技巧大全》、《php排序算法总结》、《PHP常用遍历算法与技巧总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》、《php正则表达式用法总结》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

以上就是php自定义中文字符串截取函数substr_for_gb2312及substr_for_utf8示例的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php自定义中文字符串截取函数substr_for_gb2312及substr_for_utf8示例

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址