Ответ 1
Если вам не нужна специальная обработка, this должен делать то, что вы ищете
$lines = file($filename, FILE_IGNORE_NEW_LINES);
Я пытаюсь прочитать каждую строку текстового файла в массив и каждую строку в новом элементе. Мой код до сих пор.
<?php
$file = fopen("members.txt", "r");
$i = 0;
while (!feof($file)) {
$line_of_text = fgets($file);
$members = explode('\n', $line_of_text);
fclose($file);
?>
Если вам не нужна специальная обработка, this должен делать то, что вы ищете
$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 -Личные окончания.
если "\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