#8. 4 php Двоичное чтение файла: fread

Читать содержимое файла необязательно по строкам или символам. Данные из файла могут быть прочитаны в любом необходимом объеме при помощи функции fread. Функция fgets рассматривает файлы как текстовые, а функция fread рассматривает их как двоичные, не обрабатывая специальным образом концы строк и не выполняя никаких других преобразований данных -- файл считается просто последовательностью байт. Синтаксис функции fread приведен ниже.

fread(resource handle, int length)

Функция считывает до length байт из файла, заданного своим дескриптором handle. Чтение прекращается, если достигнут конец файла, или если считано заданное количество байт.

В операционной системе Windows для использования функции fread файл должен быть открыт в двоичном режиме ('rb'). Так как добавление режима 'b' не имеет негативного эффекта в других операционных системах, то имеет смысл использовать его всегда в целях совместимости:

<?php
    $handle = fopen("file.txt", "rb");
    ....

При помощи fread можно считать весь файл целиком в одну строку. Для определения фактического размера файла используется функция filesize:

<?php
    $handle = fopen("file.txt", "rb");
    $text = fread($handle, filesize("file.txt"));
    ...

После выполнения этого кода файл будет считан в переменную $text. Если при выполнении возникнет какая-либо ошибка, то переменная будет содержать пустую строку. Для преобразования символов концов строк в теги <BR> используется функция str_replace:

<?php
    $handle = fopen("file.txt", "rb");
    $text = fread($handle, filesize("file.txt"));
    $br_text = str_replace("\n", "<BR>", $text);
    ...

Все, что остается сделать после этого -- вывести преобразованный текст при помощи функции echo и закрыть файл, что и продемонстрировано в следующем примере.

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

<HTML>
    <HEAD>
        <TITLE>Чтение файла при помощи fread</TITLE>
    </HEAD>
    <BODY>
        <CENTER>
            <H1>
                Чтение файла при помощи fread
            </H1>
            <?php
                $handle = fopen("file.txt", "rb");
                $text = fread($handle, filesize("file.txt"));
                $br_text = str_replace("\n", "<BR>", $text);
                echo $br_text;
                fclose($handle);
            ?>
        </CENTER>
    </BODY>
</HTML> 

Результат выполнения примера:



Рис. 1. Отображение двоичного файла

Key Words for FKN + antitotal forum (CS VSU):