如何分别全角和半角以避免乱码

来源:互联网 发布:公共卫生服务软件下载 编辑:程序博客网 时间:2024/05/09 23:34



<?php
function ChgTitle($title)
{

$length
=18;//截取汉字长度
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 的字符个数,如果半角字符为偶数,则表示位置刚好为整个汉字,如果为奇数,则为半个汉字,需要取下一个字符