Основы работы с файлами в PHP. Как происходят типовые операции?

основы работы с файлами в php. как происходят типовые операции?

Осуществление файловых операций

В некоторых языках программирования работа с файлами происходит схожим образом. Вы можете найти много общего между Java, PHP, С#, Perl и т.д. Причиной тому служит заимствование устоявшихся и эффективных механизмов из низкоуровневого языка C.

Файлы — это абстрактные единицы хранения информации. Контроль взаимодействия с ними берет на себя операционная система. PHP может выполнять операции ввода/вывода за счет использования файловых дескрипторов. Это значения относящиеся к ресурсному типу данных. С помощью них операционная система понимает, с каким именно файлом в настоящий момент работает программа.

//Текст для добавления в файлы
$contentText = 'Этот файл сгенерирован автоматически';

//Создаем три файла в цикле
for ($count = 1; $count < 4; $count++) {
    //DOCUMENT_ROOT - полный путь до корневой директории
    $fileName = $_SERVER['DOCUMENT_ROOT'] . '/my-file-'. $count .'.txt';
    $descriptor = fopen($fileName, 'w');

    if ($descriptor !== false) {
        fwrite($descriptor, $contentText);
        fclose($descriptor);

    } else {
        echo "Файл {$fileName} невозможно открыть";
    }
}

Пример демонстрирует создание трех текстовых файлов в цикле. После выполнения скрипта они будут находиться в корневой директории сайта. Функция fopen() в первом аргументе принимает имя файла, а во втором, режим доступа. Буква «w» означает, что файл открывается для записи и будет создан в случае отсутствия. Функция возвращает дескриптор, который понадобится для дальнейших операций. Вы можете посмотреть его значение с помощью var_dump();

$descriptor = fopen($_SERVER['DOCUMENT_ROOT'] . '/filename.txt', 'w');
var_dump($descriptor);              //Результат: resource(3, stream)
var_dump(is_resource($descriptor)); //Результат: boolean(true)

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

Заметка
В PHP существует широкий ряд функций для работы с файлами. Они будут изучены в следующих уроках данного учебного курса.

Нужно отметить, что во многих операционных системах сетевые и локальные ресурсы также представлены в виде файлов. Это дает возможность посылать сообщения удаленным серверам также просто, как и осуществлять запись информации в файл.

Проблемы прав доступа

Пример по созданию текстовых файлов содержит в себе проверку дескрипторов. Функция fopen() в случае невозможности открыть файл вернет значение false. Именно с ним и происходит сравнение в условном операторе.

Существует несколько причин невозможности открытия файла в PHP. Самой распространенной из них является отсутствие прав доступа на чтение файла или редактирования содержимого директории.

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

Последние публикации