Как прочитать локальный файл с помощью PHP?

Как выучить PHP2 Программирование и разработка

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

PHP предлагает нам три нативные функции для работы с локальными файлами: file(), file_get_contents(), и fopen(). Для этих функций были написаны целые библиотеки, но они по-прежнему используются, когда нам нужно быстро манипулировать файлами с помощью PHP.

Сначала мы рассмотрим, что делают эти функции, а затем рассмотрим примеры их работы.

file() и file_get_contents()

file()и file_get_contents()работать примерно так же. Они оба читают весь файл. Однако file()считывает файл в массив, а file_get_contents()файл читает в строку. Обе эти функции безопасны для двоичных файлов, что означает, что их можно использовать для любого типа контента.

Будьте особенно осторожны при использовании file(), потому что массив, возвращаемый им, будет разделен новой строкой, но к каждому элементу по-прежнему будет прикреплен завершающий символ новой строки.

fopen()

Функция fopen()работает совершенно по-другому. Он откроет дескриптор файла, который функционирует как поток для чтения или записи файла.

Руководство по PHP объясняет это так:

В своей простейшей форме поток — это ресурсный объект, демонстрирующий потоковое поведение. То есть его можно считывать или записывать линейным образом, а также fseek()в произвольное место в потоке.

Проще говоря, вызов fopen()ничего не сделает, кроме открытия потока.

После того, как мы открыли поток и получили дескриптор файла, для управления файлом можно использовать другие функции, такие как fread()и. fwrite()И как только мы закончим, мы можем закрыть поток, используя fclose().

Примеры

Взгляните на следующий пример:

<?php
    $filepath = "/usr/local/sitepoint.txt";
    $handle = fopen($filename, "r");
    $contents = fread($handle, filesize($filename));
    fclose($handle);

Приведенные выше функции дадут вам гораздо более точный контроль над файлами, но они гораздо более низкого уровня, чем функции file()или file_get_contents(), которые предпочтительнее использовать, как указано в документации PHP:

file_get_contents()является предпочтительным способом чтения содержимого файла в строку. Он будет использовать методы подкачки памяти, если они поддерживаются вашей ОС, для повышения производительности.

file_get_contents()довольно прост в использовании:

<?php
    $file_contents = file_get_contents('./file.txt');

Это прочитает содержимое file.txtв $file_contents.

Если вместо этого нам нужна только определенная часть файла, мы можем сделать это:

<?php
    $file_contents = file_get_contents('./file.txt', FALSE, NULL, 20, 14);

Это будет читать 14 символов, начиная с символа 20 из file.txt. Более подробную информацию обо всех параметрах file_get_contents()можно найти в официальной документации.

Читайте также:  Пример приоритета Pthread на C
Оцените статью
bestprogrammer.ru
Добавить комментарий