网易首页 > 网易号 > 正文 申请入驻

在 PHP 中计算文章字数可以根据语言类型

0
分享至

在 PHP 中计算文章字数可以根据语言类型(中文或英文)采用不同的方法。以下是几种常见的实现方式:

1. 基础方法(区分中英文)

中文文章(按字符计算)

使用函数正确统计中文字符(UTF-8 编码):

mb_strlen()

php

$content = "这是一篇中文文章。";

$wordCount = mb_strlen($content, 'UTF-8');

echo $wordCount; // 输出:9(包括标点符号)

英文文章(按单词计算)

使用正则表达式匹配单词:

php

$content = "";

preg_match_all('/\b\w+\b/', $content, $matches);

$wordCount = count($matches[0]);

echo $wordCount; // 输出:5

2. 自动检测语言并计算字数

结合语言检测和对应的计算方法:

php

function countWords($content) {

// 检测是否包含中文(简单判断)

if (preg_match('/\p{Han}/u', $content)) {

// 中文:按字符统计(包括标点)

return mb_strlen($content, 'UTF-8');

} else {

// 英文:按单词统计

preg_match_all('/\b\w+\b/', $content, $matches);

return count($matches[0]);

// 示例

$cnContent = "你好,世界!";

$enContent = "Hello, world!";

echo countWords($cnContent); // 输出:6(中文字符+标点)

echo countWords($enContent); // 输出:2(单词数)

3. 高级方法(忽略标点符号)

如果需要更精确的统计(如仅统计有效单词或汉字):

中文(仅统计汉字,忽略标点和数字)

php

$content = "你好,世界!123";

preg_match_all('/\p{Han}/u', $content, $matches);

$wordCount = count($matches[0]);

echo $wordCount; // 输出:4(仅“你好世界”)

英文(忽略标点)

php

$content = "This is a test... really!";

$content = preg_replace('/[^\w\s]/', '', $content); // 去除标点

preg_match_all('/\b\w+\b/', $content, $matches);

$wordCount = count($matches[0]);

echo $wordCount; // 输出:4

4. 处理 HTML 内容

如果文章包含 HTML 标签,需要先去除标签再统计:

php

$htmlContent = "";

这是一段加粗的文字。

$text = strip_tags($htmlContent); // 去除HTML标签

$wordCount = mb_strlen($text, 'UTF-8');

echo $wordCount; // 输出:11

5. 完整函数示例

php

* 统计文章字数(支持中英文混合)

* @param string $content 文章内容

* @param bool $ignorePunctuation 是否忽略标点符号

* @return array 返回字数统计结果

function getWordCount($content, $ignorePunctuation = true) {

// 去除HTML标签

$text = strip_tags($content);

// 检测语言并统计

$isChinese = preg_match('/\p{Han}/u', $text);

if ($isChinese) {

// 中文:按字符或汉字统计

if ($ignorePunctuation) {

preg_match_all('/\p{Han}/u', $text, $matches);

$count = count($matches[0]);

} else {

$count = mb_strlen($text, 'UTF-8');

} else {

// 英文:按单词统计

if ($ignorePunctuation) {

$text = preg_replace('/[^\w\s]/', '', $text);

preg_match_all('/\b\w+\b/', $text, $matches);

$count = count($matches[0]);

return [

'total' => $count,

'language' => $isChinese ? 'chinese' : 'english',

'is_html' => ($content !== $text)

// 示例

$article = "";

PHP is great! 编程很有趣。

$result = getWordCount($article);

print_r($result);

// 输出:['total' => 10, 'language' => 'chinese', 'is_html' => true]

关键点总结

  1. 中文统计:用避免乱码。
  2. mb_strlen($str, 'UTF-8')
  3. 英文统计:用正则匹配单词。
  4. /\b\w+\b/
  5. 混合内容:通过检测中文字符()自动切换统计方式。
  6. \p{Han}
  7. HTML 处理:先用去除标签。
  8. strip_tags()
  9. 标点处理:根据需求决定是否忽略。

根据实际需求选择合适的方法即可!

声明:内容由AI生成

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
听说闫学晶炫富导致中央戏剧学院的管理层都被团灭了!

听说闫学晶炫富导致中央戏剧学院的管理层都被团灭了!

达文西看世界
2026-02-15 20:25:40
第一个面临消失的职业,不是幼师,不是快递员,而是这四种工作?

第一个面临消失的职业,不是幼师,不是快递员,而是这四种工作?

美食格物
2026-02-20 17:13:54
黄金,重大利多来了!

黄金,重大利多来了!

杨子黄金
2026-02-21 09:18:29
越南全国获批星链服务,东南亚多国跟进布局

越南全国获批星链服务,东南亚多国跟进布局

荷兰豆爱健康
2026-02-19 23:38:13
“妈妈让孩子上交2万压岁钱”,冲上热搜!网友热议......

“妈妈让孩子上交2万压岁钱”,冲上热搜!网友热议......

中国日报
2026-02-21 15:19:24
《镖人》票房反超《惊蛰》,业内集体力挺吴京,网友吐槽美中不足

《镖人》票房反超《惊蛰》,业内集体力挺吴京,网友吐槽美中不足

古希腊掌管月桂的神
2026-02-20 16:26:09
美国启动中国行动计划,驱赶华裔科学家用印度人替代后,后果初显

美国启动中国行动计划,驱赶华裔科学家用印度人替代后,后果初显

鸢飞九天
2026-02-13 21:48:00
阿森纳杀疯了!超级天才已锁定,马丁内利 + 马杜埃凯要凉?

阿森纳杀疯了!超级天才已锁定,马丁内利 + 马杜埃凯要凉?

奶盖熊本熊
2026-02-22 04:11:17
“真是个懦夫!”多特球星情绪失控

“真是个懦夫!”多特球星情绪失控

绿茵情报局
2026-02-22 05:20:40
中国第二大民营企业“倒了”,负债高达七千亿,现已“卖身”改名

中国第二大民营企业“倒了”,负债高达七千亿,现已“卖身”改名

财经保探长
2026-02-16 22:50:55
杨瀚森能在NBA立足吗?美媒给出响亮的回答,没有料到会说这种话

杨瀚森能在NBA立足吗?美媒给出响亮的回答,没有料到会说这种话

林子说事
2026-02-21 16:31:39
为啥说穷人要玩期货,没钱跑几个月外卖玩,一次就能翻身这对吗?

为啥说穷人要玩期货,没钱跑几个月外卖玩,一次就能翻身这对吗?

另子维爱读史
2026-02-11 23:08:00
美司令称解放军拥有134战机中队,心智正常者不敢与中国对抗

美司令称解放军拥有134战机中队,心智正常者不敢与中国对抗

花魄m
2026-02-22 06:13:49
刚刚确认!即将抵达东莞!这波非常猛!

刚刚确认!即将抵达东莞!这波非常猛!

东莞好生活
2026-02-21 22:56:51
不该请林孝埈?王濛怒怼:教练组这6年咋练的,咋把人家整这样的

不该请林孝埈?王濛怒怼:教练组这6年咋练的,咋把人家整这样的

风过乡
2026-02-21 09:24:42
春天急了:狂风暴雪沙尘暴正在南下,大范围降温启动南方暴雨

春天急了:狂风暴雪沙尘暴正在南下,大范围降温启动南方暴雨

中国气象爱好者
2026-02-22 00:39:22
“高中女孩”与“职高女孩”的对比图火了,家长直言:差距太大了

“高中女孩”与“职高女孩”的对比图火了,家长直言:差距太大了

妍妍教育日记
2026-01-25 07:50:03
国产MPV瑟瑟发抖?26款塞纳混动+头等舱强势来袭!

国产MPV瑟瑟发抖?26款塞纳混动+头等舱强势来袭!

蓝色海边
2026-02-21 19:49:31
武汉发布火情通报,过火面积80平方米!

武汉发布火情通报,过火面积80平方米!

越乔
2026-02-21 14:08:53
黄循财没去和平峰会,东盟国家去的有苏林、洪玛奈、普拉博沃

黄循财没去和平峰会,东盟国家去的有苏林、洪玛奈、普拉博沃

感谢过往的自己
2026-02-22 06:25:11
2026-02-22 07:48:49
建邺区生态科技岛人工智能商会
建邺区生态科技岛人工智能商会
南京市建邺区生态科技岛人工智能行业商会
246文章数 0关注度
往期回顾 全部

科技要闻

智谱上市1月涨5倍,市值超越京东、快手

头条要闻

贝加尔湖7名遇难者身份全部确认 1家4口仅1人生还

头条要闻

贝加尔湖7名遇难者身份全部确认 1家4口仅1人生还

体育要闻

徐梦桃:这是我第一块铜牌 给我换个吉祥物

娱乐要闻

黄晓明澳门赌博输十几亿 本人亲自回应

财经要闻

一觉醒来,世界大变,特朗普改新打法了

汽车要闻

比亚迪的“颜值担当”来了 方程豹首款轿车路跑信息曝光

态度原创

本地
家居
时尚
艺术
游戏

本地新闻

春花齐放2026:《骏马奔腾迎新岁》

家居要闻

本真栖居 爱暖伴流年

冬天穿衣尽量别露腿,这些基础穿搭可尝试,简单大方又不挑人

艺术要闻

这本书法,80%的人无法读懂!网友直言:看到第二字就傻眼!

LCK历史级统治力!GEN晋级先锋赛,轻松击败T1的BFX惨遭抽陀螺

无障碍浏览 进入关怀版