PHP 字符串长度
2020-04-26 本文已影响0人
887d1fc86fe6
-
字符串的长度问题,有两个方面的理解:
1、一个字符串有几个字符(人可见到的字符个数) ;
2、一个字符串占据复少个字节空间(人不可见) ; -
几个常识:
a、1字节(B)就是8个bit位(最小的存储空间),1KB=1024B, 1MB=1024KB, 1GB=1024MB。。
b、一个英文字符占据1字节空间,gbk编码中1个汉字占据2个字节,utf8编码1个汉字占3字节。
- 求php字符串的长度,有两个函数:
strlen(字符串):求该字符串的“字节数”,也就是占据的字节空间大小;
mb_strlen(字符串):求该字符串的“字符个数”。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<?php
// strlen 字节数
$str1 = 'abcd';
$str2 = 'abcd\tefg';
$str3 = '我是abcd\tefg';
$str4 = "abcd\tefg";
$str5 = "我是abcd\tefg";
echo strlen($str1); // 4
echo strlen($str2); // 9
echo strlen($str3); // 15, 默认 utf8, 一个中文字符占 3个字节
echo strlen($str4); // 8, 字符串 \t 就只相当于一个字节
echo strlen($str5); // 14, 字符串 \t 就只相当于一个字节
// 字符个数
echo mb_strlen($str1); // 4
echo mb_strlen($str2); // 9
echo mb_strlen($str3); // 11, 一个中文字符占一个字符
echo mb_strlen($str4); // 8, 字符串 \t 就只相当于一个字符
echo mb_strlen($str5); // 10, 字符串 \t 就只相当于一个字符
?>
</body>
</html>