Laravel 5.6 как читать текстовый файл построчно - PullRequest
0 голосов
/ 26 октября 2018

Без Laravel я могу использовать простой код для чтения текстового файла построчно:

$file = fopen("whatever/file.txt", "r") or exit("Unable to open file!");

while(!feof($file)) {
   echo fgets($file). "<br>";
}

fclose($file);

С Laravel эта простая вещь становится ошеломляющей из-за локального места хранения файлов.

Т.е. я могу получитьсодержимое файла методом Storage::get('whatever/file.txt'), но как получить только файл и затем прочитать его в цикле?

Я пытался использовать метод File::get('whatever/file.txt'), но получил ошибку: File does not exist at path.

Как читать файл из локального хранилища (не публичного) построчно с Laravel?

Ответы [ 4 ]

0 голосов
/ 26 октября 2018

Так запутанно!

Мой файл находился в папке storage/app/whatever/file.txt, но метод Laravel storage("whatever/file.txt") распознает его как storage/whatever/file.txt путь.

Как я уже говорил, это ошеломляет и сбивает с толку.

Итак, fopen('storage/app/whatever/file.txt') работает для меня.

0 голосов
/ 26 октября 2018

Вы можете получить свой файл так:

$file = fopen(storage_path("whatever/file.txt"), "r");

Это приведет к пути, подобному этому '/var/www/storage/whatever/file.txt' или '/var/www/foo/storage/whatever/file.txt', если вы обслуживаете несколько веб-сайтов с одного и того же сервера, это будет зависеть от ваших настроек, но вы получите суть. Затем вы можете прочитать свой файл;

while(!feof($file)) {
    echo fgets($file). "<br>";
}

fclose($file);
0 голосов
/ 26 октября 2018

Вам нужно знать, где находится ваш файл. Вам также нужен путь, чтобы добраться туда. Например, если ваш файл находится в папке хранилища, вы можете сделать

File::get(storage_path('whatever/test.txt'));
dd($contents);
0 голосов
/ 26 октября 2018

Надеюсь, это поможет

  File::get(storage_path('whatever/file.txt'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...