如何计算出所有的字符总数,一个中文算一个。谢谢
11 个解决方案
#1
用mbstring
mb_strlen($str);
要安装php_mbstring.dll扩展。
设置php.ini:
mbstring.language = Chinese
mbstring.internal_encoding = GB2312
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;
?>
$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++;
}
}
?>
<?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));有误
因为楼主要求“一个中文算一个”
所以 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
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;
?>
$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++;
}
}
?>
<?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));有误
因为楼主要求“一个中文算一个”
所以 52juanjuan(Fibona)的strlen(str_replace("/([\x80-\xff].)/","**",$str));有误
#8
谢谢各位!!
#9
weieryang(一生),你的不成:)
#10
weieryang(一生),你的不成:)
#11
y