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

在 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.

相关推荐
热点推荐
神舟二十号返回时间推迟,目前三名航天员的现状如何?

神舟二十号返回时间推迟,目前三名航天员的现状如何?

凡知
2025-11-08 10:38:43
我们搞错了,不是荷兰封了DUV光刻机,是它不再归美国管了

我们搞错了,不是荷兰封了DUV光刻机,是它不再归美国管了

李博世财经
2025-11-08 17:21:30
建桥4399手表被偷后续!女小偷身份不一般,与男导员关系更是特殊

建桥4399手表被偷后续!女小偷身份不一般,与男导员关系更是特殊

夜深爱杂谈
2025-11-08 22:12:14
C罗点射造2大神迹,菲利克斯世界波领跑射手榜,胜利3-1夺八连胜

C罗点射造2大神迹,菲利克斯世界波领跑射手榜,胜利3-1夺八连胜

钉钉陌上花开
2025-11-08 23:48:33
石雪清谈邵佳一出任国足主帅:带队成绩估摸不会有佳也不会有一

石雪清谈邵佳一出任国足主帅:带队成绩估摸不会有佳也不会有一

懂球帝
2025-11-08 11:30:49
广东男子3天去同一家发廊2次,老板娘每天穿着不同:越看越上头

广东男子3天去同一家发廊2次,老板娘每天穿着不同:越看越上头

心轩专栏
2025-11-08 22:10:43
损失惨重!特朗普20亿美元比特币押注“爆雷”,从“信徒”到“受害者”只用了半年

损失惨重!特朗普20亿美元比特币押注“爆雷”,从“信徒”到“受害者”只用了半年

FX168链界观察
2025-11-08 10:25:12
西方国家为什么都不喜欢中国?英国专家:中国有一个“老问题”

西方国家为什么都不喜欢中国?英国专家:中国有一个“老问题”

顾史
2025-11-09 01:46:13
网友心疼祖副院长妻子,美丽善良落落大方,丈夫却在医院干这种事

网友心疼祖副院长妻子,美丽善良落落大方,丈夫却在医院干这种事

十九妹
2025-11-09 00:07:07
特朗普,突然改口了!比特币爆发,近20万人爆仓!

特朗普,突然改口了!比特币爆发,近20万人爆仓!

证券时报e公司
2025-11-08 21:55:29
提升自己,比仰望别人更实在

提升自己,比仰望别人更实在

加油丁小文
2025-10-31 08:30:03
刚刚!两大利好,突袭!

刚刚!两大利好,突袭!

中国基金报
2025-11-09 00:09:36
6-0,滕哈赫前东家踢疯,希克梅开二度,19岁新星梅开二度

6-0,滕哈赫前东家踢疯,希克梅开二度,19岁新星梅开二度

侧身凌空斩
2025-11-09 00:23:18
现实爽文!Meta裁掉的AI蛋白质团队,被扎克伯格高价买回,目标消灭所有疾病!

现实爽文!Meta裁掉的AI蛋白质团队,被扎克伯格高价买回,目标消灭所有疾病!

智药局
2025-11-08 18:08:30
全运会男篮八强确定,八进四对阵出炉:辽宁战山东,广东对阵天津

全运会男篮八强确定,八进四对阵出炉:辽宁战山东,广东对阵天津

中国篮坛快讯
2025-11-09 00:12:00
卫健委通报医院回应,当事人报警,涉事副院长与女医生将被问责

卫健委通报医院回应,当事人报警,涉事副院长与女医生将被问责

现代小青青慕慕
2025-11-08 05:57:56
中荷贸易战不打了?荷兰愿认输归还安世,只要中方满足两个条件

中荷贸易战不打了?荷兰愿认输归还安世,只要中方满足两个条件

临云史策
2025-11-09 01:14:31
出场时间少得可怜!火箭用一份不低的签下他是一个巨大的错误?

出场时间少得可怜!火箭用一份不低的签下他是一个巨大的错误?

稻谷与小麦
2025-11-09 00:54:35
“最帅展昭”离世,享年58岁!

“最帅展昭”离世,享年58岁!

黎兜兜
2025-11-08 21:22:56
院长和女医生有染,亲热的视频被人发到网上,偷拍视频的人是谁

院长和女医生有染,亲热的视频被人发到网上,偷拍视频的人是谁

乔生桂
2025-11-08 20:15:41
2025-11-09 03:04:49
建邺区生态科技岛人工智能商会
建邺区生态科技岛人工智能商会
南京市建邺区生态科技岛人工智能行业商会
180文章数 0关注度
往期回顾 全部

科技要闻

美股“AI八巨头”单周市值损失8000亿美元

头条要闻

张家界荒野求生选手抓到野猪吃得满嘴流油 赛事方回应

头条要闻

张家界荒野求生选手抓到野猪吃得满嘴流油 赛事方回应

体育要闻

马刺绞赢火箭,不靠文班亚马?

娱乐要闻

古二再度放料!秦雯王家卫吐槽出现新人物

财经要闻

小马、文远回港上市 但自动驾驶还没赢家

汽车要闻

特斯拉Model Y后驱长续航版上线:28.85 万元

态度原创

本地
教育
房产
时尚
军事航空

本地新闻

这届干饭人,已经把博物馆吃成了食堂

教育要闻

数学不难,难的是“愿意思考”

房产要闻

封关倒计时!三亚主城 2.3 万 /㎡+ 即买即住,手慢无!

五十多岁的女性秋季别瞎打扮,这3个技巧实用还时髦,快收藏

军事要闻

福建舰常驻地为三亚军港

无障碍浏览 进入关怀版