如何正确的统计WordPress博客文章的汉字个数?

如何正确的统计WordPress博客文章的汉字个数?

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

评论0

请先