
PHP 里有 strlen 函数, 不过这个函数只是返回 字符串的位数, 每个字数算1个字节. 比如 字符串:
strlen($str) 的长度是 45, 因为有 11个汉字(在UTF-8下 汉字长度为3), 11*3+12=45, PHP里还提供了一个 mb_strlen 用于计算不同编码下多字节的个数,
echo mb_strlen($str,'utf8'); // 23
echo mb_strlen($str,'gbk'); // 28
echo mb_strlen($str,'gb2312'); // 33
但都不是我们想要的. 该字符串汉字的个数应该是返回11(应该去除英文, 数字, 空格还有其它字符). 我们则可以通过 正则表达式计算汉字UTF-8编码的范围个数:
if (!function_exists("getCount")) {
function getCount($str) {
preg_match_all("/([\x{4e00}-\x{9fa5}]){1}/u", $str, $arrCh);
return count($arrCh[0]);
}
}
然后我们就可以编译 子主题的 functions.php 模板 并加入以下代码:
add_filter( 'the_content', 'count_characters' );
function count_characters($content) {
if (function_exists("getCount")) {
$content .= getCount($content)." 个汉字";
}
return $content;
}
同样根据正则表达式 我们可以统计出英文字母 和 数字和个数:
preg_match_all("/[0-9]{1}/", $str, $arrNum);
echo "数字个数:".count($arrNum[0]);
preg_match_all("/[a-zA-Z]{1}/", $str, $arrAl);
echo "字母个数:".count($arrAl[0]);
阅读全文
常见问题
下载地址失效了怎么版?
客服会第一时间检查下载地址,并发送到您的注册邮箱。如未及时处理可联系客服QQ或邮箱。
导入演示被中断了想重新导入怎么办?
https://themege.net/23822.html
不懂导入演示数据?无法一键导入演示数据?
https://themege.net/16186.html
原文链接:https://themege.net/29060.html,转载请注明出处。

评论0