Я пытаюсь прочитать каждую строку текстового файла в массив и иметь каждую строку в новом элементе.
Мой код до сих пор.
<?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