PHP 里有 strlen 函数, 不过这个函数只是返回 字符串的位数, 每个字数算1个字节. 比如 字符串:
1 | $str='小赖子的英国生活和资讯 JustYY.com '; |
$str='小赖子的英国生活和资讯 JustYY.com ';
strlen($str) 的长度是 45, 因为有 11个汉字(在UTF-8下 汉字长度为3), 11*3+12=45. PHP里还提供了一个 mb_strlen 用于计算不同编码下多字节的个数,
1 2 3 | echo mb_strlen($str,'utf8'); // 23 echo mb_strlen($str,'gbk'); // 28 echo mb_strlen($str,'gb2312'); // 33 |
echo mb_strlen($str,'utf8'); // 23 echo mb_strlen($str,'gbk'); // 28 echo mb_strlen($str,'gb2312'); // 33
但都不是我们想要的. 该字符串汉字的个数应该是返回11(应该去除英文, 数字, 空格还有其它字符). 我们则可以通过 正则表达式计算汉字UTF-8编码的范围个数:
1 2 3 4 5 6 | if (!function_exists("getCount")) { function getCount($str) { preg_match_all("/([\x{4e00}-\x{9fa5}]){1}/u", $str, $arrCh); return count($arrCh[0]); } } |
if (!function_exists("getCount")) { function getCount($str) { preg_match_all("/([\x{4e00}-\x{9fa5}]){1}/u", $str, $arrCh); return count($arrCh[0]); } }
然后我们就可以编译 子主题的 functions.php 模板 并加入以下代码:
1 2 3 4 5 6 7 | add_filter( 'the_content', 'count_characters' ); function count_characters($content) { if (function_exists("getCount")) { $content .= getCount($content)." 个汉字"; } return $content; } |
add_filter( 'the_content', 'count_characters' ); function count_characters($content) { if (function_exists("getCount")) { $content .= getCount($content)." 个汉字"; } return $content; }
同样根据正则表达式 我们可以统计出英文字母 和 数字和个数:
1 2 3 4 | 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]); |
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]);
Wordpress博客技术文章
- 为博客Wordpress添加两个显示十大文章的短指令 shortcode
- 添加短代码(Short Code Function)以在 WordPress 帖子或页面中包含任何 PHP 或 HTML 文件
- 给Wordpress提了个BUG得到了一件免费的T-Shirt
- 最简单有效的过滤Wordpress垃圾评论的方法
- 怎么样对你的Wordpress博客进行汉化?
- 怎么样移动Wordpress博客的评论?
- Wordpress 博客使用 AMP 移动加速的技术和技巧
- 怎么样正确的统计WORDPRESS博文的汉字个数?
- 本人提供有偿 WORDPRESS或相关网站 速度SEO优化等服务
- 如何把 隐藏 WORDPRESS 的顶部管理菜单?
- 通过PHP脚本 批量设置 WORDPRESS 博客文件夹属性
- 在WORDPRESS管理员界面上面添加菜单选项
- 开发 Wordpress 插件 教程 - 插件是如何工作的?
- Wordpress 最简单的过滤垃圾评论的方法
- 如何显示缩略图 随机文章 Wordpress?
- 如何在文章最后显示 历史上的今天 [Wordpress]?
强烈推荐
- 英国代购-畅购英伦
- TopCashBack 返现 (英国购物必备, 积少成多, 我2年来一共得了3000多英镑)
- Quidco 返现 (也是很不错的英国返现网站, 返现率高)
- 注册就送10美元, 免费使用2个月的 DigitalOcean 云主机(性价比超高, 每月只需5美元)
- 注册就送10美元, 免费使用4个月的 Vultr 云主机(性价比超高, 每月只需2.5美元)
- 注册就送10美元, 免费使用2个月的 阿里 云主机(性价比超高, 每月只需4.5美元)
- 注册就送20美元, 免费使用4个月的 Linode 云主机(性价比超高, 每月只需5美元) (折扣码: PodCastInit2022)
- PlusNet 英国光纤(超快, 超划算! 用户名 doctorlai)
- 刷了美国运通信用卡一年得到的积分 换了 485英镑
- 注册就送50英镑 – 英国最便宜最划算的电气提供商
- 能把比特币莱特币变现的银行卡! 不需要手续费就可以把虚拟货币法币兑换
微信公众号: 小赖子的英国生活和资讯 JustYYUK