Метод readStream
Метод readStream применяется к экземпляру Storage
и возвращает поток ресурса для указанного файла.
Первым параметром передаётся путь к файлу относительно корня диска.
Если файл не найден, метод возвращает false.
Синтаксис
<?php
Storage::readStream($path);
?>
Пример
Давайте прочитаем большой файл и обработаем его построчно:
<?php
use Illuminate\Support\Facades\Storage;
$stream = Storage::readStream('logs/large-file.log');
if ($stream) {
while (($line = fgets($stream)) !== false) {
echo $line;
}
fclose($stream);
}
?>
Пример
Давайте скопируем содержимое одного файла в другой, используя потоки:
<?php
use Illuminate\Support\Facades\Storage;
$sourceStream = Storage::readStream('source/data.txt');
if ($sourceStream) {
$destStream = Storage::writeStream('destination/backup.txt', $sourceStream);
fclose($sourceStream);
if ($destStream) {
echo "File copied successfully";
}
}
?>
Результат выполнения кода:
"File copied successfully"
Пример
Давайте обработаем CSV-файл с использованием потока:
<?php
use Illuminate\Support\Facades\Storage;
$stream = Storage::readStream('import/users.csv');
if ($stream) {
while (($data = fgetcsv($stream, 1000, ',')) !== false) {
echo $data[0] . ' ' . $data[1];
}
fclose($stream);
}
?>
Смотрите также
-
метод
writeStream,
который записывает поток в файл -
метод
get,
который возвращает содержимое файла как строку -
метод
download,
который инициирует скачивание файла -
метод
put,
который записывает содержимое в файл