- Руководство по функциям файловой системы в PHP
- Открытие файла с помощью PHP-функции fopen()
- Закрытие файла с помощью PHP-функции fclose()
- Чтение файлов с помощью PHP-функции fread()
- Чтение фиксированного количества символов
- Чтение всего содержимого файла
- Запись файлов с помощью PHP-функции fwrite()
- Переименование файлов с помощью PHP-функции rename()
- Удаление файлов с помощью PHP-функции unlink()
- Функции файловой системы PHP
- Похожие посты
- Руководство по загрузке файлов на сервер в PHP
- Руководство по GET и POST запросам в PHP
- Список сообщений об ошибках в PHP
- PHP File Exists
- Check if a file exists using the file_exists() function
- Check if a file exists using the is_file() function
- Check if a file exists and readable
- Check if a file exists and writable
- Summary
Руководство по функциям файловой системы в PHP
Поскольку PHP является серверным языком программирования, он позволяет вам работать с файлами и каталогами, хранящимися на веб-сервере. В этом руководстве вы узнаете, как создавать, получать доступ и управлять файлами на вашем веб-сервере с помощью функций файловой системы PHP.
Открытие файла с помощью PHP-функции fopen()
Для работы с файлом вам сначала нужно открыть файл. Функция PHP fopen() используется для открытия файла. Базовый синтаксис этой функции может быть задан следующим образом:
Первый параметр, передаваемый в fopen() , указывает имя файла, который вы хотите открыть, а второй параметр указывает, в каком режиме файл должен быть открыт. Например:
Файл можно открыть в одном из следующих режимов:
Режим | Что он делает |
---|---|
r | Открывает файл только для чтения. |
r+ | Открывает файл для чтения и записи. |
w | Открывает файл только для записи и очищает содержимое файла. Если файл не существует, PHP попытается его создать. |
w+ | Открывает файл для чтения, записи и очищает содержимое файла. Если файл не существует, PHP попытается его создать. |
a | Открывает файл только для записи. Сохраняет содержимое файла, записывая его в конец. Если файл не существует, PHP попытается его создать. |
a+ | Открывает файл для чтения и записи. Сохраняет содержимое файла, записывая его в конец. Если файл не существует, PHP попытается его создать. |
x | Открывает файл только для записи. Возвращает FALSE и выдает ошибку, если файл уже существует. Если файл не существует, PHP попытается его создать. |
x+ | Открывает файл для чтения и записи; в противном случае он ведет себя так же, как ‘x’. |
Если вы попытаетесь открыть несуществующий файл, PHP выдаст предупреждающее сообщение. Итак, чтобы избежать появления этих сообщений об ошибках, вы всегда должны выполнять простую проверку, существует ли файл или каталог, прежде чем пытаться получить к нему доступ, с помощью PHP-функции file_exists() .
Операции с файлами и каталогами подвержены ошибкам. Поэтому рекомендуется реализовать некоторую форму проверки ошибок, чтобы в случае возникновения ошибки ваш скрипт корректно ее обработал. См. Руководство по обработке ошибок в PHP.
Закрытие файла с помощью PHP-функции fclose()
Закончив работу с файлом, его нужно закрыть. Функция fclose() используется для закрытия файла, как показано в следующем примере:
Хотя PHP автоматически закрывает все открытые файлы при завершении скрипта, рекомендуется закрывать файл после выполнения всех операций.
Чтение файлов с помощью PHP-функции fread()
Теперь, когда вы поняли, как открывать и закрывать файлы. В следующем разделе вы узнаете, как читать данные из файла. В PHP есть несколько функций для чтения данных из файла. Вы можете прочитать от одного символа до всего файла с помощью одной операции.
Чтение фиксированного количества символов
Функцию fread() можно использовать для чтения указанного количества символов из файла. Базовый синтаксис этой функции можно задать с помощью.
fread(file handle, length in bytes)
Эта функция принимает два параметра — дескриптор файла и количество байтов для чтения. В следующем примере из файла data.txt считывается 20 байтов, включая пробелы. Предположим, файл data.txt содержит абзац текста «The quick brown fox jumps over the lazy dog.»
Чтение всего содержимого файла
Функцию fread() можно использовать вместе с функцией filesize() для одновременного чтения всего файла. Функция filesize() возвращает размер файла в байтах.
Самый простой способ прочитать все содержимое файла в PHP — использовать функцию readfile() . Эта функция позволяет вам читать содержимое файла, не открывая его. В следующем примере будет сгенерирован тот же результат, что и в примере выше:
Другой способ прочитать все содержимое файла без необходимости его открытия — использовать функцию file_get_contents() . Эта функция принимает имя и путь к файлу и считывает весь файл в строковую переменную. Вот пример:
Еще один метод чтения всех данных из файла — это PHP-функция file() . Она выполняет ту же работу, что и функция file_get_contents() , но возвращает содержимое файла в виде массива строк, а не отдельной строки. Каждый элемент возвращаемого массива соответствует строке в файле.
Для обработки данных файла необходимо выполнить итерацию по массиву с помощью цикла foreach. Вот пример, который считывает файл в массив, а затем отображает его с помощью цикла:
Запись файлов с помощью PHP-функции fwrite()
Точно так же вы можете записывать или добавлять данные в существующий файл с помощью PHP-функции fwrite() . Базовый синтаксис этой функции может быть задан следующим образом:
Функция fwrite() принимает два параметра — дескриптор файла и строку данных, которые должны быть записаны, как показано в следующем примере:
В приведенном выше примере, если файл note.txt не существует, PHP автоматически создаст его и запишет данные. Но если файл note.txt уже существует, PHP удалит содержимое этого файла, если оно есть, перед записью новых данных, однако, если вы просто хотите добавить файл и сохранить существующее содержимое, просто используйте режим a вместо w в приведенном выше примере.
Альтернативный способ — использовать функцию file_put_contents() . Это аналог функции file_get_contents() и простой метод записи данных в файл без необходимости его открытия. Эта функция принимает имя и путь к файлу вместе с данными, которые будут записаны в файл. Вот пример:
Если файл, указанный в функции file_put_contents() , уже существует, PHP по умолчанию перезапишет его. Если вы хотите сохранить содержимое файла, вы можете передать специальный флаг FILE_APPEND в качестве третьего параметра функции file_put_contents() . Он просто добавит новые данные в файл вместо того, чтобы перезаписывать его. Вот пример:
Переименование файлов с помощью PHP-функции rename()
Вы можете переименовать файл или каталог с помощью PHP-функции rename() , например:
Удаление файлов с помощью PHP-функции unlink()
Вы можете удалять файлы или каталоги с помощью PHP-функции unlink() , например:
В следующей главе мы узнаем больше о разборе каталогов или папок в PHP.
Функции файловой системы PHP
В следующей таблице представлен обзор некоторых других полезных функций файловой системы PHP, которые можно использовать для динамического чтения и записи файлов.
Функция | Описание |
---|---|
fgetc() | Читает по одному символу за раз. |
fgets() | Читает по одной строке за раз. |
fgetcsv() | Читает строку значений, разделенных запятыми. |
filetype() | Возвращает тип файла. |
feof() | Проверяет, достигнут ли конец файла. |
is_file() | Проверяет, является ли файл обычным файлом. |
is_dir() | Проверяет, является ли файл каталогом. |
is_executable() | Проверяет, является ли файл исполняемым. |
realpath() | Возвращает канонизированный абсолютный путь. |
rmdir() | Удаляет пустой каталог. |
Пожалуйста, ознакомьтесь со справочником по файловой системе PHP, чтобы узнать о других полезных функциях файловой системы PHP.
Насколько публикация полезна?
Нажмите на звезду, чтобы оценить!
Средняя оценка 5 / 5. Количество оценок: 1
Оценок пока нет. Поставьте оценку первым.
Похожие посты
Руководство по загрузке файлов на сервер в PHP
В этом руководстве мы узнаем, как загружать файлы на удаленный сервер с помощью простой HTML-формы и PHP. Вы можете загружать файлы любого типа, например изображения, видео, ZIP-файлы, документы Microsoft Office, PDF-файлы, а также исполняемые файлы и множество других типов файлов. Шаг 1. Создание HTML-формы для загрузки файла В следующем примере будет создана простая HTML-форма, которую…
Руководство по GET и POST запросам в PHP
Веб-браузер связывается с сервером, как правило, с помощью одного из двух HTTP-методов (протокола передачи гипертекста) — GET и POST. Оба метода передают информацию по-разному и имеют разные преимущества и недостатки, как описано ниже. PHP-метод GET В методе GET данные отправляются в виде параметров URL, которые обычно представляют собой строки пар имени и значения, разделенные амперсандами…
Список сообщений об ошибках в PHP
Обычно, когда движок PHP сталкивается с проблемой, препятствующей правильной работе скрипта, он генерирует сообщение об ошибке. Существует шестнадцать различных уровней ошибок, и каждый уровень представлен целым числом и связанной с ним константой. Вот список уровней ошибок: Название Значение Описание E_ERROR 1 Неустранимая ошибка времени выполнения от которой невозможно избавиться. Выполнение скрипта немедленно прекращается E_WARNING 2…
Разработка сайтов для бизнеса
Если у вас есть вопрос, на который вы не знаете ответ — напишите нам, мы поможем разобраться. Мы всегда рады интересным знакомствам и новым проектам.
PHP File Exists
Summary: in this tutorial, you will learn how to check if a file exists in PHP using the file_exists() , is_file() , is_readable() , and is_writable() functions.
PHP provides some useful functions that allow you to check if a file exists. Let’s examine these functions and how to use them effectively.
Check if a file exists using the file_exists() function
To check if a file exists, you use the file_exist() function:
file_exists ( string $filename ) : bool
Code language: PHP (php)
The file_exists() function accepts a filename and returns true if the file exists; otherwise it returns false .
The following example uses the file_exists() function to check if the file readme.txt exists in the current directory:
$filename = 'readme.txt'; if (file_exists($filename)) < $message = "The file $filename exists"; > else < $message = "The file $filename does not exist"; > echo $message;
Code language: HTML, XML (xml)
If the readme.txt exists in the same directory of the script, you’ll see the following message:
The file readme.txt exists
Code language: CSS (css)
…otherwise, you’ll see a different message:
The file readme.txt does not exist
Code language: CSS (css)
Note that the $filename can be also a path to a directory. In this case, the file_exists() function returns true if the directory exists.
Check if a file exists using the is_file() function
If you want to check if a path is a file (not a directory) and exists in the file system, you can use the is_file() function.
The is_file() function accepts a $filename and returns true if the $filename is a file and exists:
is_file ( string $filename ) : bool
Code language: PHP (php)
The following example uses the is_file() function to check if the file readme.txt exists:
$filename = 'readme.txt'; if (is_file($filename)) < $message = "The file $filename exists"; > else < $message = "The file $filename does not exist"; > echo $message;
Code language: HTML, XML (xml)
Check if a file exists and readable
In practice, you often want to check if a file exists before reading its contents. To check if a file exists and is readable, you use the is_readable() function:
is_readable ( string $filename ) : bool
Code language: PHP (php)
The is_readable() function returns true if the $filename exists and readable, or false otherwise. Note that the $filename can be a directory.
The following example uses the is_readable() function to check if the readme.txt file exists and readable:
$filename = 'readme.txt'; if (is_readable($filename)) < $message = "The file $filename exists"; > else < $message = "The file $filename does not exist"; > echo $message;
Code language: HTML, XML (xml)
Check if a file exists and writable
Before writing to a file, you need to check the file exists and is writable. In this case, you can use the is_writable() function:
is_writable ( string $filename ) : bool
Code language: PHP (php)
The is_writable() function returns true if the $filename exists and writable, or false otherwise.
The following example uses the is_writable() function to check the readme.txt file exists and writable:
$filename = 'readme.txt'; if (is_writable($filename)) < $message = "The file $filename exists"; > else < $message = "The file $filename does not exist"; > echo $message;
Code language: HTML, XML (xml)
Summary
- Use the file_exists() function to check if a file exists.
- Use the is_file() function to check if a path is a regular file, not a directory, and that file exists.
- Use the is_readable() function to check if a file exists and readable.
- Use the is_writable() function to check if a file exists and writable.