Прочитайте каждую строку файла txt новому элементу массива

Я пытаюсь прочитать каждую строку текстового файла в массив и иметь каждую строку в новом элементе.
Мой код до сих пор.

<?php $file = fopen("members.txt", "r"); $i = 0; while (!feof($file)) { $line_of_text = fgets($file); $members = explode('\n', $line_of_text); fclose($file); ?> 

Если вам не нужна какая-либо специальная обработка, это должно делать то, что вы ищете

 $lines = file($filename, FILE_IGNORE_NEW_LINES); 

Самый быстрый способ, который я нашел, – это:

 // Open the file $fp = @fopen($filename, 'r'); // Add each line to an array if ($fp) { $array = explode("\n", fread($fp, filesize($filename))); } 

где $ filename будет пустым и именем вашего файла, например. ../filename.txt.

В зависимости от того, как вы настроили свой текстовый файл, вам, возможно, придется поиграть с \ n бит.

 <?php $file = fopen("members.txt", "r"); $members = array(); while (!feof($file)) { $members[] = fgets($file); } fclose($file); var_dump($members); ?> 

Просто используйте это:

 $array = explode("\n", file_get_contents('file.txt')); 
 $yourArray = file("pathToFile.txt", FILE_IGNORE_NEW_LINES); 

FILE_IGNORE_NEW_LINES избегают добавления новой строки в конце каждого элемента массива
Вы также можете использовать FILE_SKIP_EMPTY_LINES для пропуска пустых строк

ссылка здесь

 $lines = array(); while (($line = fgets($file)) !== false) array_push($lines, $line); 

Очевидно, вам нужно сначала создать дескриптор файла и сохранить его в $file .

Это просто так:

 $lines = explode("\n", file_get_contents('foo.txt')); 

file_get_contents() – получает весь файл как строку.

explode("\n") – разделит строку с разделителем "\n" – что такое ASCII-LF escape для новой строки.

Но обратите внимание – убедитесь, что файл имеет окончание UNIX- Line.

если "\n" не будет работать должным образом, у вас есть другое кодирование2 новой строки, и вы можете попробовать "\r\n" , "\r" или "\025"

 $file = __DIR__."/file1.txt"; $f = fopen($file, "r"); $array1 = array(); while ( $line = fgets($f, 1000) ) { $nl = mb_strtolower($line,'UTF-8'); $array1[] = $nl; } print_r($array); 

Вы были на правильном пути, но были некоторые проблемы с кодом, который вы опубликовали. Во-первых, не было закрывающей скобки для цикла while. Во-вторых, $ line_of_text будет перезаписываться с каждой итерацией цикла, которая фиксируется путем изменения в цикле = в a. =. В-третьих, вы взрываете буквальные символы \ n ', а не фактическую строку новой строки; в PHP одиночные кавычки будут обозначать буквенные символы, но двойные кавычки будут фактически интерпретировать экранированные символы и переменные.

  <?php $file = fopen("members.txt", "r"); $i = 0; while (!feof($file)) { $line_of_text .= fgets($file); } $members = explode("\n", $line_of_text); fclose($file); print_r($members); ?> 
  $file = file("links.txt"); print_r($file); 

Это будет принимать txt-файл как массив. Поэтому напишите что-нибудь в файл links.txt (используйте одну строку для одного элемента), запустите эту страницу 🙂 ваш массив будет $ file