要处理绳子,首先需要知道绳子的粗细。 在其他一些编程语言(如JavaScript)中,字符串的粗细通常作为字符串的一个属性出现,但在PHP中,需要通过相应的函数来获取。
PHP 中有两个常用的函数来估计字符串宽度,即 strlen() 和 mb_strlen() 函数。 在处理全英文字符串时,这两个函数的效果是一样的php转换为字符串,但是在处理中英文混合或者纯英文字符串时,这两个函数就会有一些区别php转换为字符串,下面会详细介绍。
1、strlen()函数 strlen()函数可以返回给定字符串的宽度,其语句格式如下:
strlen($字符串)
参数$string是需要估计宽度的字符串。 如果 $string 为空则返回 0。
注意:strlen()函数中,数字、英文、小数点、下划线和空格占用一个字符宽度; GB2312编码的汉字占用两个字符宽度,UTF-8编码的汉字占用三个字符宽度。
【示例】使用strlen()函数获取字符串的宽度。
<?php $str = "http://c.biancheng.net/php/"; echo '字符串“'.$str.'”的长度为:'.strlen($str).'
'; $str = "C语言中文网"; echo '字符串“'.$str.'”的长度为:'.strlen($str).'
'; $str = "php"; echo '字符串“'.$str.'”的长度为:'.strlen($str); ?>
运行结果如下:
字符串“”的宽度为:27
字符串“C语言中文网站”的宽度为:16
字符串“php”的宽度:3
2. mb_strlen()函数 mb_strlen()函数还可以返回字符串的宽度,语法格式如下:
mb_strlen($str [, $encoding = mb_internal_encoding()])
其中,$str是需要估计宽度的字符串,$encoding是可选参数,为字符编码。 如果省略,将使用内部字符编码。
mb_strlen() 函数的返回值是通过 $encoding 编码的字符串 $str 中包含的字符数,如果 $encoding 无效,则返回 false。
注意:与strlen()函数不同的是,在mb_strlen()函数中,无论是汉字,还是英文、数字、小数点、下划线和空格,都只占用一个字符宽度。
[示例] 使用mb_strlen()函数获取字符串宽度。
<?php $str = "C语言中文网"; echo '字符串“'.$str.'”的长度为:'.mb_strlen($str).'
'; $str = "http://c.biancheng.net/php/"; echo '字符串“'.$str.'”的长度为:'.mb_strlen($str).'
'; $str = "PHP 教程"; echo '字符串“'.$str.'”的长度为:'.mb_strlen($str); ?>
运行结果如下:
字符串“C语言中文网站”的宽度为:6
字符串“”的宽度为:27
字符串“PHP 教程”的宽度:6
提示:mb_strlen 不是 PHP 的核心函数。 使用前需要确保php.ini中加载了php_mbstring.dll,即确保“extension=php_mbstring.dll”这一行存在且没有被注释掉,否则会出现未定义函数的问题。