Php fopen echo file

Запись и чтение файлов в PHP: как это работает, как использовать, примеры

Для открытия конкретного файла в языке PHP используется функция fopen(), для закрытия — fclose(). Давайте рассмотрим примеры и узнаем подводные камни, которые могут подстерегать программиста при их использовании.

fopen() и fgets()

Итак, fopen() — функция в PHP, которая используется для открытия файла. Впрочему, понять это несложно даже из её названия.

Если функция выполняется успешно, она возвращает указатель на файл (файловый дескриптор). Сразу небольшой пример:

Не стоит путать функцию fopen() и функцию fgets() — подробнее о ней мы поговорим ниже.

Простыми словами, fopen-функция используется для открытия файла (для последующего его чтения, либо — для записи).

Важный момент: fopen() лучше, чем readfile() справляется с файловыми операциями.

fсlose

Функция fсlose() используется для закрытия ранее открытого файла. При этом потребуется дескриптор файла, который мы хотим закрыть.

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

Чтение

Для чтения файла полностью, построчно или поблочно в PHP применяются разные функции. Все ниже разобранные варианты дают тонкий контроль над файлом, который нужно прочитать. Если же требуются «сырые», двоичные данные, то имеет смысл пользоваться функциями более высокого уровня.

Функция fgets()

Функция fgets() применяется для построчного чтения. Сама функция принимает в качестве аргумента файловый дескриптор и возвращает следующую строку из файла. Выглядит это так:

Важно: символ новой строки в конце также включается в возвращаемое значение.

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

Функция fgets() принимает два аргумента: файловый дескриптор (обязательный) и длина считываемой строки в байтах (необязательный).

1. File — файловый дескриптор, из которого считывается строка.

2. Length — опциональный параметр для указания суммарного числа байт, которые нужно прочитать.

Ниже мы дадим два несложных примера.

(В этом блоке осуществляется чтения полного содержимого первой строки из файла).

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

Используйте этот пример для чтения всех строк из файлов по одной с помощью цикла for.

Читайте также:  Oracle oca certification java

Нужно определить окончание файла? Нет ничего проще: используйте функцию feof(). Вот как это выглядит:

Синтаксис функции

Функция fgets использует следующий синтаксис:

Функция file_get_contents()

Функция file_get_contents() полностью считывает содержимое файла в одну строку.

file_get_contents() является наиболее удобным инструментом для чтения содержимого файла в строку

Для улучшения производительности эта функция поддерживает memory mapping (вывод в память). Если сервер поддерживает memory mapping, то использовать file_get_contents() можно еще более эффективно.

Синтаксис функции выглядит следующим образом:

file_get_contents(path,include_path,context,start,max_length).

Итак, функция file_get_contents считывает содержимое файла в строку, содержащую все строки из файла, разделенные символами новой строки.

Функция fread()

Функция fread() используется для поблочного чтения. Принцип действия такой же, как у функции readfile().

fread() выполняет чтение из открытого файла. При этом, чтение может быть остановлено в конце файла или при достижении заданной длины (в зависимости от того, какое из этих двух условий наступит первым). В случае успеха — возвращается прочитанная строка. В случае неуспеха — происходит возврат false.

Запись

Для записи файлов в PHP используется функция fwrite и ее псевдоним fputs.

fwrite()

Функция fwrite используется для непосредственной записи файлов. Другими словами, используя её, вы можете записывать данные в новый файл или добавлять их в существующий файл.

Функция fwrite() имеет следующий синтаксис:

Чуть подробнее о параметрах:

  • $handle — это файловый дескриптор.
  • $string — это данные, которые будут записаны в файл.
  • $length — необязательный параметр, который может использоваться для уточнения количества записываемых байтов.

Функция fwrite принимает два параметра — файловый дескриптор и строку данных, которые должны быть записаны. Вот как это может выглядеть:

Пример использования fwrite()

Пример использования fwrite()

fputs()

Это псевдоним функции fwrite. Другими словами, он может использоваться идентично функции fwrite.

Функция fputs идентична fwrite во всех отношениях.

Обратите внимание: параметр длины является необязательным, и если он не указан, то будет записана вся строка.

bool fputs(resource file_handle, string data, [int bytes])

TRUE при успехе; FALSE — при ошибке.

  • file. Обязательный параметр. Ссылается на файл для записи.
  • string. Обязательный параметр. Ссылается на конкретную строку для записи в файл.
  • length. Опциональный параметр. Обозначает максимальный размер в байтах.

Указатель и взаимодействие с ним

Для работы с указателем мы разберем только одну функцию — fseek. Она позволяет провести поиск в любом файле.

fseek()

По сути функция используется для одной цели — для перемещения указателя в файле (задаётся точное число байт для смещения).

fseek() позволяет переместить указатель как вперёд, так и назад

В случае успешного выполнения — происходит возврат нуля, в противном случае возвращается -1.

Читайте также:  Python ожидание ввода enter

Взглянем на важные параметры этой функции:

  • file. Обязательные параметр — файловый дескриптор.
  • offset. Обязательный параметр, задающий смещение текущей позиции в файле.
  • whence. Опциональные параметр, который может иметь три значения:
  1. SEEK_SET. Это значение используется по умолчанию. По сути, это установка смещения в offset байт.
  2. SEEK_END. Используется для установки позиции в самый конец файла плюс offset (offset должен быть отрицательным числом).
  3. SEEK_CUR. Используются для установки позиции в текущее положение плюс offset.

Рекомендация: если вам необходимо узнать текущую позицию в файле, примените функцию ftell().

Профессия веб-разработчика остается одной из самых популярных в 2023 году. PHP — лишь часть широкого стека, который задействован в этом направлении. Успейте попасть в группу!

Источник

PHP File Open/Read/Close

In this chapter we will teach you how to open, read, and close a file on the server.

PHP Open File — fopen()

A better method to open files is with the fopen() function. This function gives you more options than the readfile() function.

We will use the text file, «webdictionary.txt», during the lessons:

AJAX = Asynchronous JavaScript and XML
CSS = Cascading Style Sheets
HTML = Hyper Text Markup Language
PHP = PHP Hypertext Preprocessor
SQL = Structured Query Language
SVG = Scalable Vector Graphics
XML = EXtensible Markup Language

The first parameter of fopen() contains the name of the file to be opened and the second parameter specifies in which mode the file should be opened. The following example also generates a message if the fopen() function is unable to open the specified file:

Example

$myfile = fopen(«webdictionary.txt», «r») or die(«Unable to open file!»);
echo fread($myfile,filesize(«webdictionary.txt»));
fclose($myfile);
?>

Tip: The fread() and the fclose() functions will be explained below.

The file may be opened in one of the following modes:

Modes Description
r Open a file for read only. File pointer starts at the beginning of the file
w Open a file for write only. Erases the contents of the file or creates a new file if it doesn’t exist. File pointer starts at the beginning of the file
a Open a file for write only. The existing data in file is preserved. File pointer starts at the end of the file. Creates a new file if the file doesn’t exist
x Creates a new file for write only. Returns FALSE and an error if file already exists
r+ Open a file for read/write. File pointer starts at the beginning of the file
w+ Open a file for read/write. Erases the contents of the file or creates a new file if it doesn’t exist. File pointer starts at the beginning of the file
a+ Open a file for read/write. The existing data in file is preserved. File pointer starts at the end of the file. Creates a new file if the file doesn’t exist
x+ Creates a new file for read/write. Returns FALSE and an error if file already exists
Читайте также:  Логические выражения питон примеры

PHP Read File — fread()

The fread() function reads from an open file.

The first parameter of fread() contains the name of the file to read from and the second parameter specifies the maximum number of bytes to read.

The following PHP code reads the «webdictionary.txt» file to the end:

PHP Close File — fclose()

The fclose() function is used to close an open file.

It’s a good programming practice to close all files after you have finished with them. You don’t want an open file running around on your server taking up resources!

The fclose() requires the name of the file (or a variable that holds the filename) we want to close:

PHP Read Single Line — fgets()

The fgets() function is used to read a single line from a file.

The example below outputs the first line of the «webdictionary.txt» file:

Example

$myfile = fopen(«webdictionary.txt», «r») or die(«Unable to open file!»);
echo fgets($myfile);
fclose($myfile);
?>

Note: After a call to the fgets() function, the file pointer has moved to the next line.

PHP Check End-Of-File — feof()

The feof() function checks if the «end-of-file» (EOF) has been reached.

The feof() function is useful for looping through data of unknown length.

The example below reads the «webdictionary.txt» file line by line, until end-of-file is reached:

Example

$myfile = fopen(«webdictionary.txt», «r») or die(«Unable to open file!»);
// Output one line until end-of-file
while(!feof($myfile)) echo fgets($myfile) . «
«;
>
fclose($myfile);
?>

PHP Read Single Character — fgetc()

The fgetc() function is used to read a single character from a file.

The example below reads the «webdictionary.txt» file character by character, until end-of-file is reached:

Example

$myfile = fopen(«webdictionary.txt», «r») or die(«Unable to open file!»);
// Output one character until end-of-file
while(!feof($myfile)) echo fgetc($myfile);
>
fclose($myfile);
?>

Note: After a call to the fgetc() function, the file pointer moves to the next character.

Complete PHP Filesystem Reference

For a complete reference of filesystem functions, go to our complete PHP Filesystem Reference.

Источник

Оцените статью