如何分别全角和半角以避免乱码
作者:bea
function ChgTitle($title) { $length = 46; if (strlen($title)>$length) { $temp = 0; for($i=0; $i<$length; $i++) if (ord($title[$i]) > 128) $temp++; if ($temp%2 == 0) $title = substr($title,0,$length)."..."; else $title = substr($tit
function ChgTitle($title)
{
$length = 46;
if (strlen($title)>$length) {
$temp = 0;
for($i=0; $i<$length; $i++)
if (ord($title[$i]) > 128)
$temp++;
if ($temp%2 == 0)
$title = substr($title,0,$length)."...";
else
$title = substr($title,0,$length+1)."...";
}
return $title;
}
原理就是截断一个字符,看看其ascII码是不是大于128,如果是,说明截断的是一个全角汉字,那么就退后一个截断。用$length控制长度
备注:循环判断字符串里面的 >128 的字符个数,如果半角字符为偶数,则表示位置刚好为整个汉字,如果为奇数,则为半个汉字,需要取下一个字符
有用 |
无用
{
$length = 46;
if (strlen($title)>$length) {
$temp = 0;
for($i=0; $i<$length; $i++)
if (ord($title[$i]) > 128)
$temp++;
if ($temp%2 == 0)
$title = substr($title,0,$length)."...";
else
$title = substr($title,0,$length+1)."...";
}
return $title;
}
原理就是截断一个字符,看看其ascII码是不是大于128,如果是,说明截断的是一个全角汉字,那么就退后一个截断。用$length控制长度
备注:循环判断字符串里面的 >128 的字符个数,如果半角字符为偶数,则表示位置刚好为整个汉字,如果为奇数,则为半个汉字,需要取下一个字符
猜你喜欢
您可能感兴趣的文章:
- PHP的栏目导航程序
- php的计数器程序
- PHP的开合式多级菜单程序
- PHP如何透过ODBC来存取数据库
- 在线短消息收发的程序,不用数据库
- PHP网站提速三大“软”招
- 用PHP发电子邮件
- 基于qmail的完整WEBMAIL解决方案安装详解
- 一段php加密解密的代码
- PHP开发文件系统实例讲解
- 用PHP读取IMAP邮件
- php+oracle 分页类
- 使用无限生命期Session的方法
- 图象函数中的中文显示
- 使用php+xslt在windows平台上
- 配置PHP使之能同时支持GIF和JPEG
- PHP输出控制功能在简繁体转换中的应用
- PHP 增加了对 .ZIP 文件的读取功能
- 如何去掉文章里的 html 语法