Обработка и функции PHP File()
⚡ Умное резюме
Обработка файлов в PHP использует богатый набор встроенных функций для создания, чтения, записи, копирования и удаления файлов на сервере. В этом пошаговом руководстве рассматриваются функции file_exists, fopen и её режимы, fwrite, fclose, fgets, copy, unlink и file_get_contents с практическими примерами.

Что такое файл?
Файл — это просто ресурс для хранения информации на компьютере.
Файлы обычно используются для хранения такой информации, как:
- Конфигурационные настройки программы
- Простые данные, такие как имена контактов и номера телефонов.
- Изображения, фотографии и аналогичные медиафайлы.
Поддержка форматов файлов PHP
Файловые функции PHP поддерживают широкий спектр форматов файлов, включая:
- File.txt
- Файл.log
- File.custom_extension, например, file.xyz
- Файл.csv
- Файлы .gif, .jpg и аналогичные форматы изображений.
Файлы полезны в нескольких ситуациях:
- Они обеспечивают постоянное и экономически эффективное решение для хранения простых данных, в отличие от баз данных, для управления которыми требуются другое программное обеспечение и специальные навыки.
- Вам необходимо сохранить простые данные, такие как журналы сервера, для последующего извлечения и анализа.
- Вы хотите сохранить настройки программы, то есть файл program.ini.
Функции PHP для работы с файлами
PHP предоставляет удобный способ работы с файлами благодаря богатому набору встроенных функций.
Operaтинговые системы, такие как Windows и macOS регистр не имеет значения, в то время как Linux or Юникс операционные системы чувствительны к регистру.
Использование соглашения об именовании файлов, например, только строчными буквами, является хорошей практикой, обеспечивающей максимальную кроссплатформенную совместимость.
Теперь давайте рассмотрим некоторые из наиболее часто используемых функций PHP для работы с файлами.
Функция PHP file_exists()
Эта функция используется для определения того, существует файл или нет.
- Это пригодится, когда нам нужно узнать, существует ли файл, прежде чем его обрабатывать.
- Вы также можете использовать эту функцию при создании нового файла и хотите убедиться, что этот файл еще не существует на сервере.
Функция file_exists имеет следующий синтаксис.
<?php file_exists($filename); ?>
ВОТ,
- «file_exists()» — это функция PHP, которая возвращает true, если файл существует, и false, если он не существует.
- "$filename" — это путь и имя файла, который необходимо проверить.
Приведённый ниже код использует функцию file_exists для определения существования файла my_settings.txt.
<?php if (file_exists('my_settings.txt')) { echo 'file found!'; } else { echo 'my_settings.txt does not exist'; } ?>
Сохраните приведенный выше код в файл с именем file_function.php. Предполагая, что вы сохранили файл в папке phptuts в htdocs, откройте его. URL http://localhost/phptuts/file_function.php В вашем браузере вы получите следующие результаты.
PHP-функция fopen()
Функция `fopen` используется для открытия файлов. Она имеет следующий синтаксис.
<?php fopen($file_name,$mode,$use_include_path,$context); ?>
ВОТ,
- «fopen» — функция открытия файла PHP.
- «$file_name» — имя файла, который нужно открыть.
- «$mode» — это режим, в котором должен быть открыт файл. В таблице ниже показаны режимы.
| режим | Описание |
|---|---|
| r | • Прочитать файл с начала. • Возвращает false, если файл не существует. • Только чтение |
| r+ | • Прочитать файл с начала • Возвращает false, если файл не существует. • Прочитайте и напишите |
| w | • Запись в файл вначале • Усечь файл до нулевой длины • Если файл не существует, попытайтесь его создать. • Только писать |
| w+ | • Запись в файл в начале, усечение файла до нулевой длины. • Если файл не существует, попытайтесь его создать. • Прочитайте и напишите |
| a | • Добавить в файл в конце • Если файл не существует, попытайтесь его создать. • Только писать |
| a+ | • Добавить в файл в конце • Если файл не существует, попытайтесь его создать. • Прочитайте и напишите |
- Параметр “$use_include_path” является необязательным, по умолчанию – false. Если он установлен в true, функция будет искать также в пути включения.
- Параметр «$context» является необязательным и может использоваться для указания поддерживаемого контекста.
PHP-функция fwrite()
Функция fwrite используется для записи в файлы.
Он имеет следующий синтаксис.
<?php fwrite($handle, $string, $length); ?>
ВОТ,
- «fwrite» — функция PHP для записи в файлы.
- «$handle» — это ресурс указателя файла.
- "$string" — это данные, которые будут записаны в файл.
- Параметр «$length» является необязательным и может использоваться для указания максимальной длины файла.
PHP-функция fclose()
Функция fclose() используется в PHP для закрытия уже открытого файла.
Он имеет следующий синтаксис.
<?php fclose($handle); ?>
ВОТ,
- «fclose» — это Функция PHP для закрытия открытого файла
- «$handle» — это ресурс указателя файла.
Рассмотрим теперь пример создания файла my_settings.txt. Мы будем использовать функции fopen, fwrite и fclose.
Код ниже «create_my_settings_file.php» реализует приведенный выше пример.
| Откройте файл |
<?php $fh = fopen("my_settings.txt", 'w') or die("Failed to create file"); ?> |
| Закрытие файла |
<?php fclose($fh); ?> |
| Создать файл |
<?php $fh = fopen("my_settings.txt", 'w') or die("Failed to create file"); $text = <<<_END localhost;root;pwd1234;my_database _END; fwrite($fh, $text) or die("Could not write to file"); fclose($fh); echo "File 1 written successfully"; ?> |
Тестирование кода
Откройте приложение URL http://localhost/phptuts/create_my_settings.php В Вашем браузере.
Вы получите следующую страницу.
Примечание. Если ваш диск заполнен или у вас нет разрешения на запись файлов, вы получите сообщение об ошибке.
Переключитесь обратно на URL http://localhost/phptuts/file_function.phpКакие результаты вы получаете?
PHP-функция fgets()
Функция `fgets` используется для построчного чтения PHP-файлов. Она имеет следующий базовый синтаксис.
<?php fgets($handle); ?>
ВОТ,
- «fgets» — это функция PHP для чтения строк файла.
- «$handle» — это ресурс указателя файла.
Рассмотрим теперь пример чтения файла my_settings.txt с помощью функций fopen и fgets.
Код ниже read_my_settings.php реализует приведенный выше пример.
<?php $fh = fopen("my_settings.txt", 'r') or die("File does not exist or you lack permission to open it"); $line = fgets($fh); echo $line; fclose($fh); ?>
ВОТ,
- Функция fopen возвращает указатель на файл, указанный в пути к файлу.
- Функция «die()» вызывается при возникновении ошибки. Она отображает сообщение и завершает выполнение скрипта.
Функция PHP copy ()
Функция `copy` в PHP используется для копирования файлов. Она имеет следующий базовый синтаксис.
<?php copy($file,$copied_file); ?>
ВОТ,
- «$file» указывает путь к файлу и имя файла, который нужно скопировать.
- Параметр “$copied_file” указывает путь и имя скопированного файла.
Код ниже иллюстрирует реализацию.
<?php copy('my_settings.txt', 'my_settings_backup.txt') or die("Could not copy file"); echo "File successfully copied to 2"; ?>
Удаление файла
Функция unlink используется для удаления файла. Приведённый ниже код иллюстрирует её реализацию.
<?php if (!unlink('my_settings_backup.txt')) { echo "Could not delete file"; } else { echo "File 1 successfully deleted"; } ?>
Функция PHP file_get_contents()
Функция file_get_contents используется для чтения всего содержимого файла.
Разница между file_get_contents и fgets заключается в том, что file_get_contents возвращает данные файла в виде строки, тогда как fgets считывает файл построчно.
Код ниже иллюстрирует реализацию.
<?php echo "<pre>"; // Enables display of line feeds echo file_get_contents("my_settings.txt"); echo "</pre>"; // Terminates pre tag ?>
Краткий справочник по функциям файлов PHP
В таблице ниже приведено краткое описание функций работы с файлами, рассмотренных в этом руководстве.
| Функция | Описание |
|---|---|
| file_exists | Используется для определения, существует файл или нет. |
| Еореп | Используется для открытия файла. Возвращает указатель на открытый файл |
| FWRITE | Используется для записи в файлы |
| fclose | Используется для закрытия открытого файла. |
| fgets | Используется для чтения файла построчно |
| копия | Используется для копирования существующего файла |
| разъединить | Используется для удаления существующего файла |
| file_get_contents | Используется для возврата содержимого файла в виде строки. |


