用PHP统计字符串长度?

我写了一个自定义字符串长度的函数,但是为什么do内的语句只执行一次呢?functionsstrlen($str){if($str="")return0;else{$i=-... 我写了一个自定义字符串长度的函数,但是为什么do内的语句只执行一次呢?
function sstrlen($str){

if($str = "") return 0;
else{
$i=-1;
do{
$i++;
}while($str[$i]!=NULL);
}
return $i;
}
$str = "hello";
echo sstrlen($str);
展开
 我来答
IT互联天下
2015-10-12 · 知道合伙人软件行家
IT互联天下
知道合伙人软件行家
采纳数:1437 获赞数:5161
PHP开发工程师

向TA提问 私信TA
展开全部

PHP 计算字符串长度代码示例如下,具体逻辑在代码中。

<?php
//统计字符串长度,适用中文,字母,数字混编
function get_strlength($str) {
    //强字符串统一转换为utf-8格式
    $encode = mb_detect_encoding( $str, array('ASCII','UTF-8','GB2312','GBK'));
    if (!$encode =='UTF-8'){
        $str = iconv('UTF-8',$encode,$str);
    }
    //初始化字符串长度    
    $count = 0;
    
    //循环统计
    for($i = 0; $i < strlen($str); $i++){
        //获取字符串首字母对应的ASCII值
        $value = ord($str[$i]);
        
        if($value > 127) {
            $count++;
            if($value >= 192 && $value <= 223){
                $i++;
            }elseif($value >= 224 && $value <= 239){
                $i = $i + 2;
            }elseif($value >= 240 && $value <= 247){
                $i = $i + 3;
            }else{
                die('字符串异常!!');
            } 
        }
        $count++;
    }
    return $count;
}

//测试
echo get_strlength("中国人2015年的gdp为:6666");
//25
?>
411192132
2012-10-09 · TA获得超过108个赞
知道小有建树答主
回答量:99
采纳率:100%
帮助的人:113万
展开全部
很简答啊,因为你的函数第一句写错了if($str = "") return 0;这个$str= ""不是判断是赋值!应该是
<?php
function sstrlen($str){
if($str == "") return 0;
else{
$i=-1;
do{
$i++;
}while($str[$i]!=NULL);
}
return $i;
}
$str = "hello";
echo sstrlen($str);
试试吧!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
morimoki
2012-10-09 · TA获得超过624个赞
知道小有建树答主
回答量:216
采纳率:0%
帮助的人:185万
展开全部
还是用php自带的函数strlen吧,顺便把官方手册上的例子给你:
<?php
$str = 'abcdef';
echo strlen($str); // 6

$str = ' ab cd ';
echo strlen($str); // 7?>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友0c90796
2012-10-08 · TA获得超过1611个赞
知道大有可为答主
回答量:2638
采纳率:0%
帮助的人:1074万
展开全部
php有自带函数:strlen
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式