PHP如何计算文本文件中每个单词的长度

时间:2015-04-01 12:05:03

标签: php string

我需要一些帮助。如何使用PHP计算文本文件中每个单词的长度。

例如,

。有test.txt。包含是“大家好,我需要一些帮助。” 如何输出文本然后计算每个单词的长度,如:

阵列

hello => 5
everyone => 8
i => 1
need  => 4
some => 4
help => 4

我刚开始学习php。所以请解释一下您编写的代码的详细信息。

非常感谢

3 个答案:

答案 0 :(得分:1)

这是有效的

 $stringFind="hello everyone, i need some help";

$file=file_get_contents("content.txt");/*put your file path */

$isPresent=strpos($file,$stringFind);
if($isPresent==true){
$countWord=explode(" ",$stringFind);
foreach($countWord as $val){
echo $val ." => ".strlen($val)."<br />";
}
}else{
echo "Not Found";
}

答案 1 :(得分:0)

这应该有效

$text = file_get_contents('text.txt'); // $text = 'hello everyone, i need some help.';
$words = str_word_count($text, 1);
$wordsLength = array_map(
    function($word) { return mb_strlen($word, 'UTF-8'); },
    $words
);

var_dump(array_combine($words, $wordsLength));

有关str_word_count及其参数的更多信息,请参阅http://php.net/manual/en/function.str-word-count.php

基本上,一切都在php.net上有详细描述。函数array_map遍历给定数组并对该数组中的每个项应用给定(例如,匿名)函数。函数array_combine通过使用一个数组作为键而另一个数组作为其值来创建数组。

答案 2 :(得分:0)

如果您不需要处理“&#39;稍后,试试这个:

// Get file contents
$text = file_get_contents('path/to/file.txt');  

// break text to array of words
$words = str_word_count($text, 1);

// display text
echo $text, '<br><br>';

// and every word with it's length
foreach ($words as $word) {
    echo $word, ' => ', mb_strlen($word), '<br>';
}

但请注意,str_word_count()函数在UTF-8字符串(f.e。波兰语,捷克语和类似字符)方面存在许多问题。如果您需要这些,我建议过滤掉逗号,圆点和其他非单词字符,并使用explode()获取$words数组。