Прочитайте каждую строку файла 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);

?>

Ответ 1

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

$lines = file($filename, FILE_IGNORE_NEW_LINES);

Ответ 2

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

// 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 бит.

Ответ 3

<?php
$file = fopen("members.txt", "r");
$members = array();

while (!feof($file)) {
   $members[] = fgets($file);
}

fclose($file);

var_dump($members);
?>

Ответ 4

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

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

Ответ 5

$yourArray = file("pathToFile.txt", FILE_IGNORE_NEW_LINES);

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

ссылка здесь

Ответ 6

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

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

Ответ 7

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

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

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

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

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

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

Ответ 8

$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);

Ответ 9

Вы были на правильном пути, но были некоторые проблемы с кодом, который вы опубликовали. Во-первых, не было закрывающей скобки для цикла 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);
    ?>

Ответ 10

    $file = file("links.txt");
print_r($file);

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