Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用PHP精确计算具有特殊字符的字符串中的字符数?_Php - Fatal编程技术网

如何使用PHP精确计算具有特殊字符的字符串中的字符数?

如何使用PHP精确计算具有特殊字符的字符串中的字符数?,php,Php,我正在使用strlen计算字符串的长度,如果它超过x个字符,则使用省略号substr计算它。问题是,如果有特殊字符,strlen函数会吐出一个不准确的数字,导致在没有超过x个字符的字符串中添加省略号。计算字符串长度的好方法是什么?即使涉及特殊字符,最好将特殊字符计算为常规字符,例如“W^a”计数为三个字符。如果在特殊字符下,您的意思类似于öüóűőúúúáí,那么您可以尝试使用mbústrlen方法,并将“utf-8”作为第二个参数。请提供一些需要检查长度的字符串示例。

我正在使用
strlen
计算字符串的长度,如果它超过x个字符,则使用省略号
substr
计算它。问题是,如果有特殊字符,
strlen
函数会吐出一个不准确的数字,导致在没有超过x个字符的字符串中添加省略号。计算字符串长度的好方法是什么?即使涉及特殊字符,最好将特殊字符计算为常规字符,例如“W^a”计数为三个字符。

如果在
特殊字符
下,您的意思类似于öüóűőúúúáí,那么您可以尝试使用mbústrlen方法,并将“utf-8”作为第二个参数。

请提供一些需要检查长度的字符串示例。