当前位置:首页 » 编程语言 » php中文字数

php中文字数

发布时间: 2023-08-20 00:03:19

php 如何实现限制显示 字数 ············急求!!!!

估计你是用 substr 直接截取字符的,如果是英文与数字组合还好,如果是中文就会出现你上面的方框。在PHP中一个英文或者数字算一位,而汉字算三位(具体你可以使用 strlen 试试看)。比如有一个汉字,你截取一位,还有两位就丢失了,从而造成显示方框。你可以自己写个函数来计算应该截取多少位(网上有相应方法),循环整个字符串,如果是字母或者数字算一位,汉字或者全角符号算三位。然后输出正确的截取长度。

有一个方法没这么麻烦的,不知道是否使用smarty,如果是那就可以直接使用他里面的函数 truncate 比如 {$goods.goods_name|truncate:10} 这样只显示10位,后面的不显示并自动加上省略号。

祝你成功!

❷ PHP如何统计中文字数

mt_strlen()

❸ php截取字符串之截取utf8或gbk编码的中英文字符串示例

php中自带strlen是返回的字节数,对于utf8编码的中文返回时3个,不满足需求,下面给大家提供一个方法来完成这样的功能
微博的发言有字数限制,其计数方式是,中文算2个,英文算1个,全角字符算2个,半角字符算1个。
php中自带strlen是返回的字节数,对于utf8编码的中文返回时3个,不满足需求。
mb_strlen
可以根据字符集计算长度,比如utf8的中文计数为1,但这不符合微博字数限制需求,中文必须计算为2才可以。
google了下,找到一个discuz中截取各种编码字符的类,改造了下,已经测试通过.其中参数$charset
只支持gbk与utf-8。

代码如下:
$a
=
"s@@你好";
var_mp(strlen_weibo($a,'utf-8'));

结果输出为8,其中字母s计数为1,全角@计数为2,半角@计数为1,两个中文计数为4。源码如下:

代码如下:
function
strlen_weibo($string,
$charset='utf-8')
{

$n
=
$count
=
0;

$length
=
strlen($string);

if
(strtolower($charset)
==
'utf-8')

{

while
($n
<
$length)

{

$currentByte
=
ord($string[$n]);

if
($currentByte
==
9
||

$currentByte
==
10
||

(32
<=
$currentByte
&&
$currentByte
<=
126))

{

$n++;

$count++;

}
elseif
(194
<=
$currentByte
&&
$currentByte
<=
223)

{

$n
+=
2;

$count
+=
2;

}
elseif
(224
<=
$currentByte
&&
$currentByte
<=
239)

{

$n
+=
3;

$count
+=
2;

}
elseif
(240
<=
$currentByte
&&
$currentByte
<=
247)

{

$n
+=
4;

$count
+=
2;

}
elseif
(248
<=
$currentByte
&&
$currentByte
<=
251)

{

$n
+=
5;

$count
+=
2;

}
elseif
($currentByte
==
252
||
$currentByte
==
253)

{

$n
+=
6;

$count
+=
2;

}
else

{

$n++;

$count++;

}

if
($count
>=
$length)

{

break;

}

}

return
$count;

}
else

{

for
($i
=
0;
$i
<
$length;
$i++)

{

if
(ord($string[$i])
>
127)

{

$i++;

$count++;

}

$count++;

}

return
$count;

}
}

❹ PHP怎么统计文章字数

很多人可能会用strlen函数,但是统计中文字符和英文字符的时候是会有出入的。
给你一个我自己写的自定义函数,可完整统计中英文,每个中文或英文占一个。

<?php
functionutf8_strlen($string=null){
preg_match_all("/./us",$string,$match);
returncount($match[0]);
}
echoutf8_strlen("网络是一部内容开放、自由的网络网络全书(ke..com),旨在创造一个涵盖所有领域知识,服务所有互联网用户的中文知识性网络全书。在这里你可以参与词条编辑,分享贡献你的知识。他们以分享知识、协作编辑为共同信仰,是网络用户的中坚力量,内容合作秒懂网络(qtfyfl.com)网络TA说数字博物馆非遗网络影视合作。");
?>

代码不多就那么一点点,可以亲自测试一下。

❺ php如何统计数据库content字段的字数

先吧数据从数据库读出来,然后用php的字符长度来统计就可以了。
在统计的时候记得要先去除空白,换行,回车等。
如果是英文文章,直接用strlen()即可,如果是中文文章用mt_strlen()方法;

❻ PHP限制字数的输出急急急!!!

因为你从数据库里读出来的时候
<
就等于
<所以你读出来是这个样子的然后你在匹配SUBSTR函数看看你输出的是21个字符串那么你把<这个算成4个字符然后其他的按正常为数读的就是21个了呵呵

❼ 怎么控制php中新闻标题的字数

控制长度当然是字符串截取了,不过这个不是在大型网站中最好的处理方法,因为截取后的不完整标题无法表达文章的大意,一般都是有一个ShortTitle由编辑填写,字数根据页面需要由编辑来控制。 字符串截取的方法中当然是支持中文的最好,提供两个给你参考。 /**
* @name substr_gbk
* @Desc 字符串截取函数,适用于GBK编码的字符串
* @author 十月GG(TaoShuChen)
* @param $str String 目标字符串
* @param $length int 所需截取的长度
* @param $other String 是否添加后缀
* @return $rstr String 截取后的字符串
*/
function substr_gbk($str,$length=10,$other='...') {
for($i=0,$j=0;$i<$length;$i++){
if(ord(substr($str,$i,1))>0xa0){
$j++;
}
}
if($j%2!=0) $length++;
$rstr=substr($str,0,$length);
if (strlen($str)>$length && !empty($other)) {
$rstr.= $other;
}
return $rstr;
} /**
* @name substr_utf8
* @Desc 字符串截取函数,适用于UTF8编码的字符串
* @author 十月GG(TaoShuChen)
* @param $str String 目标字符串
* @param $start int 开始位置
* @param $length int 所需截取的长度
* @param $other String 是否添加后缀
* @return $result String 截取后的字符串
*/function substr_utf8($str, $start=0, $length=10, $other='...') {
$pa="/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|";
$pa.="\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/";
preg_match_all($pa, $str, $t_string);
if(count($t_string[0]) - $start > $length && !empty($other)) {
return $result = implode('', array_slice($t_string[0], $start, $length)) . $other;
} else {
return $result = implode('', array_slice($t_string[0], $start, $length));
}
}

热点内容
php测试员 发布:2025-02-05 10:54:58 浏览:514
linux反编译jar 发布:2025-02-05 10:46:29 浏览:25
算法激励 发布:2025-02-05 10:45:48 浏览:304
java16进制字符串 发布:2025-02-05 10:38:13 浏览:643
创业团队配置有哪些 发布:2025-02-05 10:37:40 浏览:630
王者键盘怎么设置安卓 发布:2025-02-05 10:32:01 浏览:373
阿里云轻量服务器ip搭建 发布:2025-02-05 10:24:46 浏览:487
编程高精度 发布:2025-02-05 10:22:28 浏览:230
使命召唤如何配置爆炸狙 发布:2025-02-05 10:08:12 浏览:143
java访问共享目录 发布:2025-02-05 10:03:56 浏览:282