精华内容
下载资源
问答
  • 有时候在PHP中需要做类似的处理,比如计算字符串中字符的个数(字符串可能包含单字节和多字节),strlen方法只能计算字节数,而mb_strlen需要开启扩展。类似这样的需求,其实很容易处理:function mbstrlen($s...

    当在处理字符时,如果字节小于0x80,则把它当作单字节来处理,否则会继续读取下一个字节,这通常跟编码有关,GBK会将2个字节当成一个字符来处理,UTF8则需要3个字节。有时候在PHP中需要做类似的处理,比如计算字符串中字符的个数(字符串可能包含单字节和多字节),strlen方法只能计算字节数,而mb_strlen需要开启扩展。类似这样的需求,其实很容易处理:

    function mbstrlen($str)

    {

    $len = strlen($str);

    if ($len <= 0)

    {

    return 0;

    }

    $count  = 0;

    for ($i = 0; $i < $len; $i++)

    {

    $count++;

    if (ord($str{$i}) >= 0x80)

    {

    $i += 2;

    }

    }

    return $count;

    }

    echo "output: " . mbstrlen("中国so强大!") . "\n";

    ?>

    以上代码的实现就是利用单字节字符的ASCII码小于0x80。至于要跳过几个字节,这要看具体是什么编码.

    参考资料:

    PHP: 深入pack/unpack

    https://my.oschina.net/goal/blog/195749

    展开全文
  • 在PHP中,函数strlen()返回字符串长度,strlen()函数返回字符串所占的字节长度,一个英文字母、数字、各种符号均占一个字节,它们的长度均为1strlen()函数和mb_strlen()函数在PHP中,函数strlen()返回字符串长度...

    在PHP中,函数strlen()返回字符串的长度,strlen()函数返回字符串所占的字节长度,一个英文字母、数字、各种符号均占一个字节,它们的长度均为1strlen()函数和mb_strlen()函数在PHP中,函数strlen()返回字符串的长度。函数原型如下: 代码如下:int strlen(string string_input);参数string_input为要处理的字符串。strlen()函数返回字符串所占的字节长度,一个英文字母、数字、各种符号均占一个字节,它们的长度均为1。一个中午字符占两个字节,所以一个中午字符的长度是2。例如 代码如下:<?phpecho strlen("www.sunchis.com");echo strlen("三知开发网");?>“echo strlen("www.sunchis.com");”的运行结果:15“echo strlen("三知开发网");”的运行结果:15这里有一个疑问,一个中文字符不是占2个字节吗?“三知开发网”,明明是五个汉字,运行的结果怎么会是15?原因出在这里:strlen()计算时,对于一个UTF-8的中文字符,会把它当做长度为3来处理。当出现中英文混排的情况下,怎么准确的计算字符串的长度呢?这里,得引入另外一个函数mb_strlen()。mb_strlen()函数的用法与strlen()几乎一摸一样,只是多了一个指定字符集编码的参数。函数原型为: 代码如下:int mb_strlen(string string_input, string encode);PHP内置的字符串长度函数strlen无法正确处理中文字符串,它得到的只是字符串所占的字节数。对于GB2312的中文编码,strlen得到的值是汉字个数的2倍,而对于UTF-8编码的中文,就是3倍的差异了(在UTF-8编码下,一个汉字占3个字节)。 因此,下面的代码能准确计算出中文字符串的长度: 代码如下:<?php $str = "三知sunchis开发网";echo strlen($str)."
    "; //结果:22echo mb_strlen($str,"UTF8")."
    "; //结果:12$strlen = (strlen($str)+mb_strlen($str,"UTF8"))/2;echo $strlen; //结果:17?>原理分析:strlen()计算时,对待UTF-8的中文字符长度是3,所以“三知sunchis开发网”的长度为5×3+7×1=22在mb_strlen计算时,选定内码为UTF8,则会将一个中文字符当作长度1来计算,所以“三知sunchis开发网”长度为5×1+7×1=12剩下的就是纯数学问题了,在此就不�嗦了……注意:对于mb_strlen($str,'UTF-8'),如果省略第二个参数,则会使用PHP的内部编码。内部编码可以通过mb_internal_encoding()函数得到。需要注意的是,mb_strlen并不是PHP核心函数,使用前需要确保在php.ini中加载了php_mbstring.dll,即确保“extension=php_mbstring.dll”这一行存在并且没有被注释掉,否则会出现未定义函数的问题。

    展开全文
  • 怎么在PHP中利用strlen()函数对字符串长度进行计算发布时间:2020-12-25 16:36:29来源:亿速云阅读:111作者:Leah这期内容当中小编将会给大家带来有关怎么在PHP中利用strlen()函数对字符串长度进行计算,文章...

    怎么在PHP中利用strlen()函数对字符串的长度进行计算

    发布时间:2020-12-25 16:36:29

    来源:亿速云

    阅读:111

    作者:Leah

    这期内容当中小编将会给大家带来有关怎么在PHP中利用strlen()函数对字符串的长度进行计算,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

    strlen()函数和mb_strlen()函数

    在PHP中,函数strlen()返回字符串的长度。函数原型如下:

    复制代码 代码如下:

    int strlen(string string_input);

    参数string_input为要处理的字符串。

    strlen()函数返回字符串所占的字节长度,一个英文字母、数字、各种符号均占一个字节,它们的长度均为1。一个中午字符占两个字节,所以一个中午字符的长度是2。例如

    复制代码 代码如下:

    echo strlen("www.sunchis.com");

    echo strlen("三知开发网");

    ?>

    “echo strlen("www.sunchis.com");”的运行结果:15

    “echo strlen("三知开发网");”的运行结果:15

    这里有一个疑问,一个中文字符不是占2个字节吗?“三知开发网”,明明是五个汉字,运行的结果怎么会是15?

    原因出在这里:strlen()计算时,对于一个UTF-8的中文字符,会把它当做长度为3来处理。当出现中英文混排的情况下,怎么准确的计算字符串的长度呢?这里,得引入另外一个函数mb_strlen()。mb_strlen()函数的用法与strlen()几乎一摸一样,只是多了一个指定字符集编码的参数。函数原型为:

    复制代码 代码如下:

    int mb_strlen(string string_input, string encode);

    PHP内置的字符串长度函数strlen无法正确处理中文字符串,它得到的只是字符串所占的字节数。对于GB2312的中文编码,strlen得到的值是汉字个数的2倍,而对于UTF-8编码的中文,就是3倍的差异了(在UTF-8编码下,一个汉字占3个字节)。 因此,下面的代码能准确计算出中文字符串的长度:

    复制代码 代码如下:

    $str = "三知sunchis开发网";

    echo strlen($str)."
    "; //结果:22

    echo mb_strlen($str,"UTF8")."
    "; //结果:12

    $strlen = (strlen($str)+mb_strlen($str,"UTF8"))/2;

    echo $strlen; //结果:17

    ?>

    原理分析:

    strlen()计算时,对待UTF-8的中文字符长度是3,所以“三知sunchis开发网”的长度为5×3+7×1=22

    在mb_strlen计算时,选定内码为UTF8,则会将一个中文字符当作长度1来计算,所以“三知sunchis开发网”长度为5×1+7×1=12

    剩下的就是纯数学问题了,在此就不啰嗦了……

    注意:对于mb_strlen($str,'UTF-8'),如果省略第二个参数,则会使用PHP的内部编码。内部编码可以通过mb_internal_encoding()函数得到。需要注意的是,mb_strlen并不是PHP核心函数,使用前需要确保在php.ini中加载了php_mbstring.dll,即确保“extension=php_mbstring.dll”这一行存在并且没有被注释掉,否则会出现未定义函数的问题。

    上述就是小编为大家分享的怎么在PHP中利用strlen()函数对字符串的长度进行计算了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。

    展开全文
  • function getStrLength(str) { var len = str.length; var result = 0; for (var i = 0; i < len; i++) { if (str.charCodeAt(i) < 27 || str.charCodeAt(i) > 126) { ...
    function getStrLength(str) {
        var len = str.length;
        var result = 0;
        for (var i = 0; i < len; i++) {
            if (str.charCodeAt(i) < 27 || str.charCodeAt(i) > 126) {
                result += 2;
            } else {
                result++;
            }
        }
        return result;
    }

     

    转载于:https://www.cnblogs.com/tlijian/p/3566412.html

    展开全文
  • PHP计算字符串长度,包括计算英文、GBK、UTF-8多种字符集下PHP如何计算字符串长度。 英文字符串长度,strlen()是PHP自带的计算英文字符串的函数。 GBK字符串长度 中文字符计算为2个字符,英文字符计算为1个,可以...
  • PHP计算字符串长度,包括计算英文、GBK、UTF-8多种字符集下PHP如何计算字符串长度。英文字符串长度strlen()是PHP自带的计算英文字符串的函数。GBK字符串长度中文字符计算为2个字符,英文字符计算为1个,可以统计中文...
  • PHP计算字符串长度,包括计算英文、GBK、UTF-8多种字符集下PHP如何计算字符串长度。英文字符串长度 strlen()是PHP自带的计算英文字符串的函数。 GBK字符串长度 中文字符计算为2个字符,英文字符计算为1个,可以...
  • PHP计算字符串长度

    2011-03-08 07:45:28
    PHP计算字符串长度,包括计算英文、GBK、UTF-8多种字符集下PHP如何计算字符串长度。英文字符串长度 strlen()是PHP自带的计算英文字符串的函数。 [b][size=medium][color=blue]GBK字符串长度[/color][/size][/...
  • 在开发的过程中,经常会遇到一些各种平台对输入字符的要求限制 那么,如何准确得到一个字符串的长度,包括英文和数字?... 1 function sizeof(str){//计算字符串长度 2 let total = 0, 3 i, 4 charCode, 5 ...
  • JavaScript 字符串编码问题一个...再如,如何得到一个字符串长度?答:'abcd'.length // 4 这些答案都不是完全正确,或者说并不是对于所有的字符都是适用的,例如:'a bc'.split('').reverse().join('') cb��a...
  • 计算字符串长度

    2019-12-13 15:38:05
    字符串是任意类型任意数字组成的一段字符,那么我们如何计算此段字符串长度呢??? 结果演示 代码演示 package com.four; import java.util.Scanner; public class Long { public static void main(String[] ...
  • 您可以使用len()获取任何字符串长度示例:print (len("string"))结果:6下面是一个简单的例子:在你的问题中,你说指示是:return the words if the length of the words is more than the integer.下面的代码将...
  • BAT批处理脚本案例--计算字符串长度

    千次阅读 2020-02-15 19:47:16
    BAT批处理脚本案例--计算字符串长度,涉及下述知识点:call调用获取字符串长度,实现调用结果如何赋值个变量;字符串截取;goto使用;变量延时读取enabledelayedexpansion;
  • 对于我的python作业,程序要求用户输入三个字符串并打印输入字符串的平均长度我的代码:name1 = input ("enter first string: ")name2 = input ("enter second string: ")name3 = input ("enter third string: ")...
  • (1)计算字符串长度时关键是要注意辨认转义字符; (2)一个转义字符总是以反斜杠开始,再加一个其他字符组成。所以,遇到反斜杠时要特别注意!!! 示例: 1、不带转义字符的字符串 如:“abc!x=/”,strlen求其长度为 ...
  • 你真的会字符串反转、计算字符串长度么? Javascript 字符串编码 问题 一个常见的问题:如何将字符串反转? 一个常见的解答: 'abcd'.split('').reverse().join('') // dcba 再如,如何得到一个字符串的长度? 答: '...
  • python中如何获取字符串的长度?本篇文章就给大家介绍4种在python中计算并输出字符串长度的方法。有一定的参考价值,有需要的朋友...'输出:5下面我们就来介绍在python中计算字符串长度,并输出长度的4种方法。【相...
  • 一个常见的解答:'abcd'再如,如何得到一个字符串长度?答:'abcd'这些答案都不是完全正确,或者说并不是对于所有的字符都是适用的,例如:'a bc'这其中的原因涉及到了 JavaScript 的字符串编码。Unicode 及编码...
  • 写这篇文章主要是为了介绍在Java中如何获取字符串和数组的长度,文中会通过实例代码介绍计算字符串长度.length()和数组长度.length两者之间的区别,希望对大家的学习或者工作中具有一定的学习和参考价值: ...
  • 用ASP做网站的时候经常会碰到要截取字符串的情况。ASP中的Len函数不管是中文字符,还是英文字符,统统按一...下面是按照一个汉字相当于两个英文字符来计算字符串长度和截取字符串的代码 计算中英文混合字符串的长度:
  • 本文介绍如何计算字符串长度,共介绍三种方法,分别用length(), size(), strlen()实现 文章目录length()介绍size()介绍strlen()介绍 length()介绍 利用length()函数时,直接用字符串调用函数即可,格式如下: string...
  • 计算中英文混合字符串长度: function getStringLen(str) on error resume next dim l,c,i,t l=len(str) t=l for i=1 to l c=asc(mid(str,i,1)) if c>=128 or c next getStringLen=t if err.number end
  • python中如何获取字符串的长度?本篇文章就给大家介绍4种在python中计算并输出字符串长度的方法。有一定的参考价值,有需要的朋友...'输出:5下面我们就来介绍在python中计算字符串长度,并输出长度的4种方法。【相...
  • 功能:计算给定字符串的(unsigned int型)长度,不包括’\0’在内 说明:返回s的长度,不包括结束符NULL。 strlen(char函数求的是字符串的实际长度,它求得方法是从开始到遇到第一个’\0’,如果你只定义没有给它赋
  • 包含特殊字符(例如?)的Java字符串在每个特殊字符中占用两个...如何正确计算字符串中的字节数?例:单词endere?o应该返回9而不是8。当我运行System.out.println("endereo".getBytes().length);时,它显示" 9"。@bri...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 798
精华内容 319
关键字:

如何计算字符串长度