我需要一些帮助。如何使用PHP计算文本文件中每个单词的长度。
例如,。有test.txt。包含是“大家好,我需要一些帮助。” 如何输出文本然后计算每个单词的长度,如:
阵列
hello => 5
everyone => 8
i => 1
need => 4
some => 4
help => 4
我刚开始学习php。所以请解释一下您编写的代码的详细信息。
非常感谢答案 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
数组。