首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

截取GBK字符串的有关问题~

2012-06-15 
截取GBK字符串的问题~~~~这是一个截取GBK字符串的函数:PHP codefunctiongb_substr( $str ,$len ){$count

截取GBK字符串的问题~~~~
这是一个截取GBK字符串的函数:

PHP code
function  gb_substr( $str ,  $len ){              $count  = 0;              for ( $i =0;  $i < strlen ( $str );  $i ++){                  if ( $count  ==  $len )  break ;                  if (preg_match( "/[\x80-\xff]/" ,  substr ( $str ,  $i , 1))){        ++ $i ;          }                  ++ $count ;                      }              return   substr ( $str , 0,  $i );        }


我的问题是,GBK和GB2312每个字符不肯定是2个字节吗?那直接用要截取的长度*2不完了吗?
比如我要截取3个字符:3*2=6 也就是我要截取到6的位置。

这么想对吗?

[解决办法]
使用mb系列函数,GBK对非ASCII两个字符,ASCII还是1个字节。
[解决办法]
不对,因为有可能含ascii码的数字或字符

探讨
这是一个截取GBK字符串的函数:
PHP code

function gb_substr( $str , $len ){
$count = 0;
for ( $i =0; $i < strlen ( $str ); $i ++){
if ( $count == $len ) break……

热点排行