我正在尝试一次一个单词地读取文件。到目前为止,我已经能够使用 fgets() 逐行读取或最多读取一定数量的字节,但这不是我想要的。我一次想要一个字。直到下一个空格、\n 或 EOF。
有谁知道如何在 php.ini 中执行此操作。在 C++ 中,我只使用 'cin >> var' 命令。
you can do this by
$filecontents = file_get_contents('words.txt');
$words = preg_split('/[\s]+/', $filecontents, -1, PREG_SPLIT_NO_EMPTY);
print_r($words);
this will give you array of words
对于本主题的一些回复:我这样说:不要重新发明轮子。
在 PHP 中使用:
str_word_count ( string $string [, int $format [, string $charlist ]] )
格式:
0 = 只返回字数;
1 = 返回一个数组;
2 = 返回一个关联数组;
人物:
Charlist 是您认为是单词的字符。
[警告]
没有人知道您的文件内容的大小,如果您的文件内容很大,存在许多灵活的解决方案。
(^‿◕)
您将不得不使用 fgetc 一次获取一封信,直到您遇到一个单词 bountry 然后对该单词执行某些操作。例子
$fp = fopen("file.txt", "r");
$wordBoundries = array("\n"," ");
$wordBuffer = "";
while ($c = fgetc($fp)){
if (in_array($c, $wordBountries)){
// do something then clear the buffer
doSomethingWithBuffer($wordBuffer);
$wordBuffer = "";
} else {
// add the letter to the buffer
$wordBuffer.= $c;
}
}
fclose($fp);
您可以尝试fget()
逐行读取文件的功能,当您从文件中获取一行时,您可以从explode()
用空格分隔的行中提取单词。
试试这个代码:
$handle = fopen("inputfile.txt", "r");
if ($handle) {
while (($line = fgets($handle)) !== false) {
// process the line read.
$word_arr = explode(" ", $line); //return word array
foreach($word_arr as $word){
echo $word; // required output
}
}
fclose($handle);
} else {
// error while opening file.
echo "error";
}