当前位置: 首页> 最新文章列表> 怎样用 str_word_count 函数快速统计一个文本文件中的单词数?

怎样用 str_word_count 函数快速统计一个文本文件中的单词数?

M66 2025-08-07

在 PHP 中,str_word_count 是一个非常实用的内置函数,它可以快速统计字符串中的单词数。这个函数不仅可以用于简单的字符串,也可以方便地应用于从文件中读取的文本内容。本文将为大家介绍如何使用 str_word_count 函数来统计一个文本文件中的单词数。

str_word_count 函数概述

str_word_count 函数的基本语法如下:

<span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-title function_ invoke__">str_word_count</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$string</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$format</span></span><span> = </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-keyword">string</span></span><span>|</span><span><span class="hljs-literal">null</span></span><span> </span><span><span class="hljs-variable">$charlist</span></span><span> = </span><span><span class="hljs-literal">null</span></span><span>)
</span></span>
  • $string: 要处理的输入字符串。

  • $format: 控制返回结果的格式,0表示返回单词数,1表示返回单词数组,2表示返回关联数组,键是单词位置,值是单词。

  • $charlist: 可选的字符列表,定义哪些字符被视为单词的一部分。

在默认情况下(即 $format = 0),该函数将返回文本中的单词数。

读取文件内容并统计单词数

假设我们有一个文本文件 example.txt,我们需要统计其中的单词数量。首先,我们需要使用 file_get_contents() 函数读取文件内容,然后使用 str_word_count 来统计单词数。以下是完整的 PHP 代码示例:

<span><span><span class="hljs-meta">&lt;?php</span></span><span>

</span><span><span class="hljs-comment">// 读取文本文件内容</span></span><span>
</span><span><span class="hljs-variable">$fileContent</span></span><span> = </span><span><span class="hljs-title function_ invoke__">file_get_contents</span></span><span>(</span><span><span class="hljs-string">'example.txt'</span></span><span>);

</span><span><span class="hljs-comment">// 检查文件是否为空</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$fileContent</span></span><span> === </span><span><span class="hljs-literal">false</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"无法读取文件。"</span></span><span>;
    </span><span><span class="hljs-keyword">exit</span></span><span>;
}

</span><span><span class="hljs-comment">// 使用 str_word_count 函数统计单词数</span></span><span>
</span><span><span class="hljs-variable">$wordCount</span></span><span> = </span><span><span class="hljs-title function_ invoke__">str_word_count</span></span><span>(</span><span><span class="hljs-variable">$fileContent</span></span><span>);

</span><span><span class="hljs-comment">// 输出结果</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"文件中的单词总数为:<span class="hljs-subst">$wordCount</span></span></span><span>";

</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

代码解析:

  1. 读取文件内容:我们通过 file_get_contents() 函数读取 example.txt 文件的内容。如果文件不存在或者读取失败,file_get_contents() 会返回 false,因此我们使用一个简单的条件判断来检查是否成功读取文件。

  2. 统计单词数:通过调用 str_word_count() 函数,我们可以轻松获取文件中的单词数。这个函数会自动忽略标点符号,并且根据空白字符(如空格、换行符)来分割单词。

  3. 输出结果:最后,我们将统计的单词数输出到屏幕上。

使用其他 str_word_count 参数

虽然上述代码是统计单词数的最简单方式,但 str_word_count 函数还提供了一些其他的功能。我们可以通过修改 format 参数,获取更多的结果:

获取单词数组

如果你希望得到文本中的所有单词,并将它们作为数组返回,可以将 $format 设置为 1:

<span><span><span class="hljs-variable">$wordArray</span></span><span> = </span><span><span class="hljs-title function_ invoke__">str_word_count</span></span><span>(</span><span><span class="hljs-variable">$fileContent</span></span><span>, </span><span><span class="hljs-number">1</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$wordArray</span></span><span>);
</span></span>

获取关联数组

如果你希望知道每个单词在文本中的位置,可以将 $format 设置为 2。此时,返回的是一个关联数组,其中键是单词的位置(在文本中的起始位置),值是该单词本身:

<span><span><span class="hljs-variable">$wordPositions</span></span><span> = </span><span><span class="hljs-title function_ invoke__">str_word_count</span></span><span>(</span><span><span class="hljs-variable">$fileContent</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$wordPositions</span></span><span>);
</span></span>

总结

str_word_count 是一个非常简洁且高效的函数,用于统计文本中的单词数。在处理文本文件时,结合 file_get_contentsstr_word_count 可以帮助我们快速完成任务。当然,如果你需要更多的定制化处理,也可以通过调整 str_word_count 的参数来获取不同格式的输出。

希望本篇文章能够帮助你更好地理解如何在 PHP 中使用 str_word_count 函数,并在实际项目中得心应手地应用它。