200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 统计文章字数和全站总字数

统计文章字数和全站总字数

时间:2024-04-10 12:28:56

相关推荐

统计文章字数和全站总字数

关于统计文章字数这个功能最初我是在简书上看到的,现在在自己博客上我也想应用这个功能,便在网上寻找相关插件,找到一个比较满意的插件如下,并根据自己的需求,做了适当修改。

插件来源 https://blog.ela.moe/archives/255/

GitHub项目地址 /elatisy/Typecho_WordsCounter

WordsCounter

Typecho文章字数统计 & 全站字数统计插件

可在设置里调是否统计隐藏/私有文章字数

注意:文件夹名字必须为WordsCounter才能正常使用

Usage

文章字数统计

在你想要输出的地方加上

<?php $this->charactersNum(); ?>

全站字数统计

在你想要输出的地方加上

<?php WordsCounter_Plugin::allOfCharacters(); ?>

修改

但是该插件并没有区分中文和英文字符,对于程序猿来说,在文章中无意会涉及到大量的代码,将这些代码都按照字数进行统计的话,那么每篇文章的字数是相当大的,所以我查阅了相关资料,对插件进行了相关修改,使其只统计中文的字符数。

将原来的Plugins.php文件中的统计单个文章的字数和统计全站字数的代码进行修改如下,其他地方均不变。

单个文章中中文字数

public static function charactersNum($archive) {$text = preg_replace("/[^\x{4e00}-\x{9fa5}]/u", "", $archive->text);return mb_strlen($text,'UTF-8');// return mb_strlen($archive->text,'UTF-8');}

全站文章中文字数

与上文方法类似,关键就是要在计算长度之前将文章中的中文过滤出来,此处不再赘述。

PHP统计字符长度

echo strlen("你好ABC") . "";# 输出 9echo mb_strlen("你好ABC", 'UTF-8') . "";# 输出 5echo mb_strwidth("你好ABC") . "";# 输出 7

strlen 把中文字符算成 3 个字节,mb_strlen 不管中文还是英文,都算 1 个字节,而 mb_strwidth 则把中文算成 2 个字节,所以 mb_strwidth 才是我们想要的:中文 2 个字节,英文 1 个字节。

参考文章

Typecho字数统计插件Typecho_WordsCounter GitHub项目地址Typecho文章字数计算PHP 中如何正确统计中文字数

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。