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 для чтения файлов после практики примеров из этого руководства.