Обработка и функции PHP File()

⚡ Умное резюме

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

  • 📄 What Files Store: Файлы содержат параметры конфигурации, журналы и простые данные, что делает их недорогим вариантом постоянного хранения по сравнению с базой данных.
  • 🔍 Проверка файлов: Функция file_exists() проверяет наличие файла перед чтением из него или его созданием, предотвращая ошибки.
  • 📂 Открытие файлов: Функция fopen() открывает файл в режиме, например, r, w или a, который управляет чтением, записью и добавлением данных.
  • ✍️ Написание текста и заключение: Функция fwrite() отправляет данные в дескриптор файла, а функция fclose() освобождает дескриптор, когда работа завершена.
  • ???? Чтение файлов: Функция fgets() считывает данные по одной строке за раз, в то время как file_get_contents() возвращает весь файл в виде одной строки.
  • 🇧🇷 Скопировать и удалить: Функция copy() создает копию файла в новом пути, а функция unlink() безвозвратно удаляет файл с сервера.
  • 🤖 AI-помощь: Инструменты искусственного интеллекта могут генерировать код для анализа файлов и быстро разрешать ошибки, связанные с правами доступа или невозможностью открытия потока данных.

Обработка файлов PHP

Что такое файл?

Файл — это просто ресурс для хранения информации на компьютере.

Файлы обычно используются для хранения такой информации, как:

  • Конфигурационные настройки программы
  • Простые данные, такие как имена контактов и номера телефонов.
  • Изображения, фотографии и аналогичные медиафайлы.

Поддержка форматов файлов 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 file_exists()

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 В Вашем браузере.

Вы получите следующую страницу.

PHP-функция fclose

Примечание. Если ваш диск заполнен или у вас нет разрешения на запись файлов, вы получите сообщение об ошибке.

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

Часто задаваемые вопросы (FAQ)

Функция fgets считывает одну строку за один вызов, fread считывает заданное количество байтов из открытого дескриптора, а file_get_contents считывает весь файл в строку за один вызов без необходимости использования fopen или fclose.

Функция fwrite записывает данные в открытый файловый дескриптор и требует наличия функций fopen и fclose для его обработки. Функция file_put_contents открывает, записывает и закрывает файл за один вызов, что делает её более коротким вариантом для простых операций записи.

Используйте is_writable('file.txt') для проверки прав на запись перед записью, а file_exists() — для подтверждения наличия файла. В системах Unix функция chmod() может изменять права доступа, если файл принадлежит веб-серверу.

Да. Опишите формат, например, CSV, JSON или структуру логов, и ИИ сможет сгенерировать код с использованием fgetcsv, json_decode или пользовательского цикла, а также обработку ошибок для отсутствующих или некорректно сформированных файлов. Протестируйте на реальных данных.

Да. Сообщите путь и ошибку, и ИИ сможет определить неправильный относительный путь, отсутствующий файл или проблему с правами доступа, а затем предложить использовать абсолютный путь, создать файл или изменить права доступа.

Подведем итог этой публикации следующим образом: