博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
***PHP各种编码的汉字字符串截取
阅读量:6834 次
发布时间:2019-06-26

本文共 2349 字,大约阅读时间需要 7 分钟。

虽然PHP有现成的截取字符串函数substr(),但是这个函数不能对汉字字符串进行截取,要实现这种效果还需要我们自己去编写相应的函数。汉字有多种编码,比如GB2312,UTF-8等,汉字字符串的截取需要区分这种汉字编码,下面是给出的几个解决方案。

截取GB2312中文字符串

0xa0) { $tmpstr .= substr($str, $i, 2); $i++; } else $tmpstr .= substr($str, $i, 1); } return $tmpstr;}?>

截取utf8编码的多字节字符串

UTF-8、GB2312都支持的汉字截取函数

$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');?>

BugFree 的字符截取函数

* @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 = "www.nowamagic.net";$Length = "18";$Append = false;echo sysSubStr($String,$Length,$Append);?>

转载于:https://www.cnblogs.com/kenshinobiy/p/4692625.html

你可能感兴趣的文章
vs2008打开aspx设计界面无响应问题解决方法
查看>>
How to access the folder of Android
查看>>
8天学通MongoDB——第三天 细说高级操作
查看>>
centos 重启网络服务的方法
查看>>
Aspose.Cells小实例
查看>>
C# winform 获取当前路径
查看>>
groovy execute
查看>>
java IO 解析
查看>>
SQL - SQL 连接 JOIN 例解。(左连接,右连接,全连接,内连接,交叉连接,自连接)[转]...
查看>>
我也能做CTO之程序员职业规划
查看>>
OCCI入门(VC2010下配置)
查看>>
Double linked list structure
查看>>
【剑指Offer】面试招聘题目2:重建二叉树
查看>>
对路径的访问被拒绝
查看>>
PHP 短连接生成
查看>>
lftp 4.4.0 发布,命令行的FTP工具
查看>>
uva 10152 ShellSort
查看>>
经典网页设计:20个与众不同的 Flash 网站设计作品
查看>>
java.util.concurrent.locks.Condition 例子程序探讨
查看>>
NYOJ 506
查看>>