利用PHP函数计算中英文字符串长度的方法

yipeiwu_com6年前PHP代码库

本文实例讲述了利用PHP函数计算中英文字符串长度的方法。分享给大家供大家参考。具体实现方法如下:

一般来说大家知道英文字符占一个字节,而中文字符gbk占两个字符,utf8占三个字符,很多人印象中php计算字符串长度就是strlen()函数,其实不然,它计算的是字节的长度而非字符的长度,那么如何获取一个字符串中字符的长度呢?还有有mb_strlen().

具体代码如下:

复制代码 代码如下:
echo $str = 'PHP点点通'; 

echo strlen($str); //3*1+3*3=12 
echo mb_strlen($str, 'gb2312'); //3*1+3*2=9 
echo mb_strlen($str, 'utf-8'); //6


可恶的是,mb系列的函数并不是PHP核心函数,默认没有开启的,还有一个超简单的方法,通过正则将字符串分解为字符个体,计算字符的个数即为字符串的长度,代码如下:
复制代码 代码如下:
<?php 
function _strlen($str) 

        preg_match_all("/./us", $str, $matches); 
        return count(current($matches)); 

 
echo _strlen("PHP点点通");  //6 
?>

希望本文所述对大家的PHP程序设计有所帮助。

相关文章

php下关于Cannot use a scalar value as an array的解决办法

今天在测试php程序的时候,出现了一个错误提示:Cannot use a scalar value as an array,这个错误提示前几天也出过,当时好像稍微调了一下就好了,也没深究...

thinkphp 验证码 的使用小结

 thinkphp中的验证码是可以直接调用的,非常方便,我们看一下 Think 文件夹下 有一个名为verify.class.php的文件    首先 我们...

php session_start()关于Cannot send session cache limiter - headers already sent错误解决方法

说是已经有输出,用编辑器打,前面明明什么都没有,原来在使用AJAX的 时候,也出现过这种情况,后来,把这个PHP文件放到linux中打开,会发现,在文件的最前面,会出现“锘 ”这样的一个...

PHP基于imagick扩展实现合成图片的两种方法【附imagick扩展下载】

本文实例讲述了PHP基于imagick扩展实现合成图片的两种方法。分享给大家供大家参考,具体如下: 方法一:compositeimages /** * function: 合成图片...

PHP反射机制原理与用法详解

本文实例讲述了PHP反射机制原理与用法。分享给大家供大家参考,具体如下: 反射 面向对象编程中对象被赋予了自省的能力,而这个自省的过程就是反射。 反射,直观理解就是根据到达地找到出发地和...