ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Использование fread () в PHP

Как скачать и сохранить удаленное изображение с помощью PHP

PHP имеет множество встроенных функций для чтения содержимого любого файла. Некоторые из них – это fread(), readfile(), fgets(), fscanf(), file() и т. д. Некоторым функциям нужно открывать файл перед чтением, а некоторые могут читать содержимое файла, не открывая его. Функция fread() читает содержимое файла после открытия. Эта функция работает с другой встроенной функцией fopen(). В этом руководстве показано, как содержимое файла можно прочитать в PHP с помощью функции fread() .

 

Синтаксис:

string fread (resource $handle, int $length)

 

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

 

Создать текстовый файл

Создайте текстовый файл с разделителями-запятыми с именем employee.txt со следующим содержимым. Затем функция fread() используется для чтения этого текстового файла различными способами в следующей части этого руководства.

employee.txt
C-43, Andreyex Maxel, программист, 02-08-2020
C-47, Destroyer Alex, системный администатор, 15-03-2020

 

Пример 1. Прочтите конкретное содержимое текстового файла.

В следующем примере показано, как конкретное содержимое файла можно прочитать с помощью функции fread(). Функция fopen() используется в скрипте, чтобы открыть файл employee.txt для чтения. Затем функция fread() используется для чтения первых 30 байтов текстового файла, который будет напечатан позже.

<? php
// Устанавливаем путь к
$filename = "employees.txt";// Открываем файл в режиме чтения
$fh = fopen($filename, "r");

// Считываем 30 байт из файла
$content = fread($fh, 30);

// Вывести значение, возвращаемое функцией fread()
echo "The first 30 bytes of the file:<br />".$content;

// Закрываем файл
fclose($fh);

?>

 

Вывод:

Следующий вывод появится после запуска сценария с сервера. В выходных данных показаны первые 30 байтов файла employee.txt.

 

Пример 2: прочитать полное содержание текстового файла

В следующем примере показано, как полное содержимое текстового файла можно прочитать с помощью функции fread(). Как и в предыдущем примере, функция fopen() используется для открытия файла employee.txt для чтения. Файл() используется в скрипте для определения общего размера открываемого текстового файла. Функция fread() считывает полное содержимое файла, когда значение общего размера файла передается в качестве второго аргумента этой функции.

<? php
// Устанавливаем путь к
$filename = "employees.txt";// Открываем файл в режиме чтения
$fh = fopen($filename, "r");

// Считываем полное содержимое файла
$full_content = fread($fh, filesize($filename));

// Распечатываем содержимое файла
echo $full_content."<br /><br />";

// Закрываем файл
fclose($fh);

?>

 

Вывод:

Следующий вывод появится после запуска сценария с сервера. В выходных данных отображается полное содержимое файла employee.txt.

 

Пример 3: прочитать содержимое двоичного файла

В следующем примере показано, как можно прочитать файл изображения с помощью функции fread(). Здесь функция fopen() используется для открытия двоичного файла с именем flower.jpeg для чтения. Функция fread() используется с функцией Size() для чтения полного содержимого двоичного файла. Функция base64_encode() используется в скрипте для преобразования содержимого двоичного файла в удобочитаемый формат. Затем тег <img> используется для печати изображения.

<? php

// Задайте имя файла по пути
$filename = "/var/www/html/php/flower.jpeg";

// Открытие двоичного файла в режиме чтения
$fh = fopen($filename , "rb");)

// Считываем содержимое файла
$content = fread($fh, sizes($filename);

// Кодировать контент с помощью метода base64_encode()
$encoded_data = base64_encode($content);

// Устанавливаем тип mime
$mime_type ='image/gif';

// Устанавливаем двоичную строку для генерации изображения
$binary_data = 'data:' . $mime_type . ';base64,' . $encoded_data ;

// Распечатать изображение
echo '<img src="'.$binary_data.'" height="200px" width="250px">';

// Закрываем файл
fclose($fh);
?>

 

Вывод:

Если файл flower.jpeg существует в текущем месте, изображение будет отображаться как вывод.

 

Пример 4: прочитать файл по внешней ссылке

Существующие локальные текстовые и двоичные файлы используются в трех предыдущих примерах. В следующем примере показано, как можно прочитать файл по внешней ссылке с помощью функции fread(). Внешний текстовый файл открывается для чтения с помощью функции fopen(). Первая функция fread() используется для чтения 1024 байтов из внешнего текстового файла. Затем с помощью функции fopen() открывается внешняя ссылка на двоичный файл для чтения. Вторая функция fread() используется для чтения 10000 байтов из внешнего двоичного файла. Двоичный контент преобразуется в удобочитаемый формат, как в предыдущем примере, и распечатывает изображение.

<? php

// Установите внешнюю ссылку текста
$url = "https://andreyex.ru/sample.txt";

// Объявить обработчик файла для чтения текстового файла
$fh = fopen($url , "r");

// Считываем 1024 байта файла
$content = fread($fh , 1024);

// Распечатываем определенные байты файла
echo "<b> Содержание текстового файла: </b> <br />" . $content . «<br /> <br />»;

// Закрываем файл
fclose($fh);

// Устанавливаем внешнюю ссылку бинарного файла
$url = "https://andreyex.ru/photo.jpg";

// Объявить обработчик файла для чтения двоичного файла
$fh = fopen($url , "rb");

// Считываем 10000 байт файла
$content = fread($fh , 10000);

// Кодировать контент с помощью метода base64_encode()
$encoded_data = base64_encode($content);

// Устанавливаем тип mime
$mime_type = 'image / gif';

// Устанавливаем двоичную строку для генерации изображения
$binary_data = 'data:' . $mime_type . '; base64,' . $encoded_data;

// Распечатать изображение
echo "<b> Содержимое двоичного файла: </b> <br />" . '<img src = "' . $binary_data . '" height = "200px" width = "250px">';

fclose($fh);

?>

 

Вывод:

Если файл photo.jpeg существует в указанном месте, изображение будет отображаться как вывод.

 

Заключение

Использование функции fread() для чтения текстовых и двоичных файлов объясняется в этом руководстве на различных примерах. Эта функция может использоваться для чтения как внутренних, так и внешних файлов. Надеюсь, читатели смогут использовать функцию fread() в сценарии PHP для чтения файлов после практики примеров из этого руководства.

Exit mobile version