php 截取中文
发布时间:2022-07-07 13:46:56 所属栏目:PHP教程 来源:互联网
导读:?php ?php //截取中文字符串 function mysubstr(str, start, len) { tmpstr = ; strlen = start + len; for(i = 0; i strlen; i++) { if(ord(substr(str, i, 1)) 0xa0) { tmpstr .= substr(str, i, 2); i++; } else tmpstr .= substr(str, i, 1); } return t
<?php < ?php //截取中文字符串 function mysubstr(str, start, len) { tmpstr = ""; strlen = start + len; for(i = 0; i < strlen; i++) { if(ord(substr(str, i, 1)) > 0xa0) { tmpstr .= substr(str, i, 2); i++; } else tmpstr .= substr(str, i, 1); } return tmpstr; } ?> 2. 截取utf8编码的多字节字符串 <?php < ?php //截取utf8字符串 function utf8Substr(str, from, len) { return preg_replace('#^(?:[/x00-/x7F]|[/xC0-/xFF][/x80-/xBF]+){0,'.from.'}'. '((?:[/x00-/x7F]|[/xC0-/xFF][/x80-/xBF]+){0,'.len.'}).*#s', ![]() '1',str); } ?> 3. UTF-8、GB2312都支持的汉字截取函数 <?php < ?php /* Utf-8、gb2312都支持的汉字截取函数 cut_str(字符串, 截取长度, 开始长度, 编码); 编码默认为 utf-8 开始长度默认为 0 */ function cut_str(string, sublen, start = 0, code = 'UTF-8') { if(code == 'UTF-8') { pa = "/[/x01-/x7f]|[/xc2-/xdf][/x80-/xbf]|/xe0[/xa0-/xbf][/x80-/xbf]|[/xe1-/xef][/x80-/xbf][/x80-/xbf]|/xf0[/x90-/xbf][/x80-/xbf][/x80-/xbf]|[/xf1-/xf7][/x80-/xbf][/x80-/xbf][/x80-/xbf]/"; preg_match_all(pa, string, t_string); if(count(t_string[0]) - start > sublen) return join('', array_slice(t_string[0], start, sublen))."..."; return join('', array_slice(t_string[0], start, sublen)); } else { start = start*2; sublen = sublen*2; strlen = strlen(string); tmpstr = ''; for(i=0; i< strlen; i++) { if(i>=start && i< (start+sublen)) { if(ord(substr(string, i, 1))>129) { tmpstr.= substr(string, i, 2); } else { tmpstr.= substr(string, i, 1); } } if(ord(substr(string, i, 1))>129) i++; } if(strlen(tmpstr)< strlen ) tmpstr.= "..."; return tmpstr; } } str = "abcd需要截取的字符串"; echo cut_str(str, 8, 0, 'gb2312'); ?> 4. BugFree 的字符截取函数 <?php < ?php /** * @package BugFree * @version Id: FunctionsMain.inc.php,v 1.32 2005/09/24 11:38:37 wwccss Exp * * * Return part of a string(Enhance the function substr()) * * @author Chunsheng Wang <wwccss@263.net> * @param string String the string to cut. * @param int Length the length of returned string. * @param booble Append whether append "...": false|true * @return string the cutted string. */ function sysSubStr(String,Length,Append = false) { if (strlen(String) < = Length ) { return String; } else { I = 0; while (I < Length) { StringTMP = substr(String,I,1); if ( ord(StringTMP) >=224 ) { StringTMP = substr(String,I,3); I = I + 3; } elseif( ord(StringTMP) >=192 ) { StringTMP = substr(String,I,2); I = I + 2; } else { I = I + 1; } StringLast[] = StringTMP; } StringLast = implode("",StringLast); if(Append) { StringLast .= "..."; } return StringLast; } } String = "CodeBit.cn -- 简单、精彩、通用"; Length = "18"; Append = false; echo sysSubStr(String,Length,Append); ?>. (编辑:海洋资讯信息网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐