1、加载mb_string扩展库,用mb_strlen();
2、自行编制程序,参考http://www.dev-club.com/club/bbs/showEssence.asp?id=15340

解决方案 »

  1.   

    <?php
    print strlen("aaa是是") ;
    ?>
    不对吧。他显示的是4我记着他没有那么好的功能吗?
    如果他显示的是5的话。汉字截取就好办了。
      

  2.   

    是我看错了。<?php
    /*_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
    mb_substr字符的截取,不会出现乱码.他是一个一个字符算的.需要加载mbstring在php.ini中
    _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-*/
    echo mb_substr("啊方腊qwerq十分可;",0,5);
    ?>不过你得找到下载的地方。
      

  3.   

    php的extensions目录里面有这个php_mbstring.dll,只需要在
    php.ini包含这个扩展模块就行了。使用
    echo mb_strlen("aaa是是");将会显示5
      

  4.   

    我想出来了怎么计算了,如果没有php_mbstring.dll,可以这样计算。例如
    <?
    $str="我爱我家,abc";
    $len=strlen($str);
    echo $len;
    $strlen=$len;
    for($i=0;$i<$len;$i++)
    {
    if(ord($str[$i])>128)
    {
    $strlen=$strlen-1;
    $i++;
    }
    }
    echo "<br/>".$strlen;
    ?>
    大家见笑了,^_^