如何计算中英文字符总数

时间:2020-12-07 20:12:20
$str ="<p>如何计abc字符总数</p>";
如何计算出所有的字符总数,一个中文算一个。谢谢

11 个解决方案

#1


用mbstring

mb_strlen($str);

要安装php_mbstring.dll扩展。

设置php.ini:

mbstring.language = Chinese
mbstring.internal_encoding = GB2312

#2


要用到mb_strlen函数。

#3


strlen(str_replace("/([\x80-\xff].)/","**",$regs));

#4


strlen(str_replace("/([\x80-\xff].)/","**",$str));
因为中文占两个字节所以用两个"**"进行替换。

#5


<?php
$str ="<p>如何计abc字符字符总数总数</p>";

preg_match_all("/([\x81-\xfe][\x40-\xfe])/", $str, $ch);  

$sum = strlen($str) - count($ch[0])*2 + count($ch[0]);

echo $sum;

?>

#6


大家看看这样可以吗?
<?php
$total=0;
$str ="<p>如何计abc字符字符总数总数</p>";
for($i=0;$i<strlen($str);$i++)
{
if  (preg_match("/^[".chr(0xa1)."-".chr(0xff)."]+$/", $str[$i]))
{
$total++;
$i++;
}
else
{
$total++;
}
}
?>

#7


echo strlen(preg_replace("/[\x80-\xff]./","*",$str));

因为楼主要求“一个中文算一个”
所以 52juanjuan(Fibona)的strlen(str_replace("/([\x80-\xff].)/","**",$str));有误

#8


谢谢各位!!

#9


weieryang(一生),你的不成:)

#10


weieryang(一生),你的不成:)

#11


y

#1


用mbstring

mb_strlen($str);

要安装php_mbstring.dll扩展。

设置php.ini:

mbstring.language = Chinese
mbstring.internal_encoding = GB2312

#2


要用到mb_strlen函数。

#3


strlen(str_replace("/([\x80-\xff].)/","**",$regs));

#4


strlen(str_replace("/([\x80-\xff].)/","**",$str));
因为中文占两个字节所以用两个"**"进行替换。

#5


<?php
$str ="<p>如何计abc字符字符总数总数</p>";

preg_match_all("/([\x81-\xfe][\x40-\xfe])/", $str, $ch);  

$sum = strlen($str) - count($ch[0])*2 + count($ch[0]);

echo $sum;

?>

#6


大家看看这样可以吗?
<?php
$total=0;
$str ="<p>如何计abc字符字符总数总数</p>";
for($i=0;$i<strlen($str);$i++)
{
if  (preg_match("/^[".chr(0xa1)."-".chr(0xff)."]+$/", $str[$i]))
{
$total++;
$i++;
}
else
{
$total++;
}
}
?>

#7


echo strlen(preg_replace("/[\x80-\xff]./","*",$str));

因为楼主要求“一个中文算一个”
所以 52juanjuan(Fibona)的strlen(str_replace("/([\x80-\xff].)/","**",$str));有误

#8


谢谢各位!!

#9


weieryang(一生),你的不成:)

#10


weieryang(一生),你的不成:)

#11


y