读取txt文件的每一行到新的数组元素中

139

我想将文本文件的每一行读入一个数组,并让每一行都在一个新元素中。
到目前为止,我的代码如下。

<?php
$file = fopen("members.txt", "r");
while (!feof($file)) {

$line_of_text = fgets($file);
$members = explode('\n', $line_of_text);
fclose($file);

?>

1
你的代码中是否存储了任何数组内容?你遇到了什么具体问题? - Chris Bornhoft
2
警告:fopen返回FALSE将发出警告并导致此处的无限循环。http://php.net/manual/zh/function.feof.php - Gjermund Dahl
尽管该线程的日期上含有 '\n\',但它不会被解析为转义序列,必须使用 "\n" 以便正确解析。 - codekandis
12个回答

0
这个问题已经被很好地解决了,但如果你真的需要比这里列出的任何方法更好的性能,你可以使用这种使用 strtok 的方法。
$Names_Keys = [];
$Name = strtok(file_get_contents($file), "\n");
while ($Name !== false) {
    $Names_Keys[$Name] = 0;
    $Name = strtok("\n");
}

请注意,这假定您的文件保存时换行符为\n(您可以根据需要更新它),并且它将单词/名称/行存储为数组键而不是值,以便您可以将其用作查找表,允许使用isset(速度快得多),而不是in_array

0
我会使用PHP_EOL。
$dataLines = explode(PHP_EOL, $documentVariable);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接