- fread() function in PHP – Read From File
- How to use PHP fread() function?
- PHP fread() example: Read a specific amount of bytes
- PHP Read File
- PHP read file examples
- 1) Read the entire file into a string
- 2) Read some characters from a file
- 3) Read a file line by line
- Summary
- fread
- Возвращаемые значения
- Примеры
- Примечания
- Смотрите также
fread() function in PHP – Read From File
The fread() function is used to read from a file. It allows you to read from any stream or file, as long as it’s a binary stream. fread() reads the specified number of bytes into the given array, starting at the position in bytes. Let’s take a look at how the PHP fread() function works and see some examples of how to use it. Continue reading to learn more.
How to use PHP fread() function?
The fread() function is used to read from a file. It allows you to read from any stream or file, as long as it’s a binary stream. fread() reads the specified number of bytes into the given array, starting at the position in bytes. The syntax of the fread() function is –
The fread() function parameters are:
- file_handle: This parameter specifies the file from which the bytes will be read. The value can be either a file path on a local disk or a remote file.
- length: This parameter specifies the number of bytes to read. The must be a positive integer (non-zero)
PHP fread() example: Read a specific amount of bytes
If you want to read a specific amount of bytes from a file, you can provide the starting position of the bytes to read and the number of bytes to read. You can provide the length parameter to read a specific number of bytes from the file. In this example, we are reading 20 bytes from the beginning of the file. Since we are reading 20 bytes from the beginning of the file, the first 20 characters in the file are read.
PHP Read File
Summary: in this tutorial, you’ll learn how to read a file using the various built-in PHP functions.
To read the contents from a file, you follow these steps:
- Open the file for reading using the fopen() function.
- Read the contents from the file using the fread() function.
- Close the file using the fclose() function.
Here’s the syntax of the fread() function:
fread ( resource $stream , int $length ) : string|false
Code language: PHP (php)
The fread() function has two parameters:
- The $stream is a file system pointer resource, which is typically the result of the fopen() function.
- The $length specifies the maximum number of bytes to read. If you want to read the entire file, you can pass the file size to the $length parameter.
The fread() function returns the file contents or false if it fails to read.
The fread() function stops reading the file once the $length number of bytes has been read or the end of file (EOF) has been reached.
To check if the file pointer is at end of file, you can pass it to the feof() function:
feof ( resource $stream ) : bool
Code language: PHP (php)
The feof() function returns true if the $stream is at the EOF or an error occurs. Otherwise, it returns false .
To read a file line by line, you use the fgets() function:
fgets ( resource $handle , int $length = ? ) : string|false
Code language: PHP (php)
Like the fread() function, the fgets() function accepts a file system pointer resource and up to a number of bytes to read. If you omit the $length argument, the fread() function will read the entire line.
PHP read file examples
Let’s take some examples of how to read a file.
1) Read the entire file into a string
Suppose that you have a file named population.txt located at public directory with the following contents:
1 New York New York 8,253,213 2 Los Angeles California 3,970,219 3 Chicago Illinois 2,677,643 4 Houston Texas 2,316,120 5 Phoenix Arizona 1,708,127 6 Philadelphia Pennsylvania 1,578,487 7 San Antonio Texas 1,567,118 8 San Diego California 1,422,420 9 Dallas Texas 1,343,266 10 San Jose California 1,013,616
Code language: plaintext (plaintext)
The following example uses the fread() function to read the contents of the entire population.txt file into a string and shows it on the webpage:
$filename = './public/population.txt'; $f = fopen($filename, 'r'); if ($f) < $contents = fread($f, filesize($filename)); fclose($f); echo nl2br($contents); >
Code language: HTML, XML (xml)
First, open the population.txt file using the fopen() function:
$f = fopen($filename, 'r');
Code language: PHP (php)
Second, read the contents of the entire file using the fread() function; use the filesize() function to get the size of the file:
$contents = fread($f, filesize($filename));
Code language: PHP (php)
Third, show the contents of the file on a web page; use the nl2br() function to convert the newline characters to
tags.
echo nl2br($contents);
Code language: PHP (php)
Finally, close the file using the fclose() function.
Note that the file_get_contents() function is a shortcut for opening a file, reading the whole file’s contents into a string, and close it.
2) Read some characters from a file
To read some characters from a file, you specify the number of bytes to read. The following example uses the fread() function to read up to 100 bytes from the population.txt file:
$filename = './public/population.txt'; $f = fopen($filename, 'r'); if ($f) < $contents = fread($f, 100); fclose($f); echo nl2br($contents); >
Code language: HTML, XML (xml)
1 New York New York 8,253,213 2 Los Angeles California 3,970,219 3 Chicago Illinois 2,677,64
Code language: plaintext (plaintext)
3) Read a file line by line
The following example uses the fgets() funtion to read the population.txt file line by line:
$filename = './public/population.txt'; $lines = []; $f = fopen($filename, 'r'); if (!$f) < return; > while (!feof($f)) < $lines[] = fgets($f); >print_r($lines); fclose($f);
Code language: HTML, XML (xml)
Summary
- Use the fread() function to read some or all contents from a file.
- Use the fgets() function to read a line from a file.
- Use the feof() function to test the end-of-file has been reached.
- Use the filesize() function to get the size of the file.
fread
Указатель ( resource ) на файл, обычно создаваемый с помощью функции fopen() .
length указывает размер прочитанных данных в байтах.
Возвращаемые значения
Возвращает прочтенную строку или FALSE в случае возникновения ошибки.
Примеры
Пример #1 Простой пример использования fread()
// получает содержимое файла в строку
$filename = «/usr/local/something.txt» ;
$handle = fopen ( $filename , «r» );
$contents = fread ( $handle , filesize ( $filename ));
fclose ( $handle );
?>?php
Пример #2 Пример бинарного чтения с помощью fread()
На системах, которые различают бинарные и текстовые файлы (к примеру, Windows), файл должен быть открыт с использованием буквы ‘b’ в параметре mode функции fopen() .
$filename = «c:\\files\\somepic.gif» ;
$handle = fopen ( $filename , «rb» );
$contents = fread ( $handle , filesize ( $filename ));
fclose ( $handle );
?>?php
Пример #3 Примеры удаленного чтения с помощью fread()
При чтении чего-либо отличного от локальных файлов, например потоков, возвращаемых при чтении удаленных файлов или из popen() и fsockopen() , чтение остановится после того, как пакет станет доступным. Это означает, что вы должны собирать данные вместе по кусочкам, как показано на примере ниже.
// Для PHP 5 и выше
$handle = fopen ( «http://www.example.com/» , «rb» );
$contents = stream_get_contents ( $handle );
fclose ( $handle );
?>?php
$handle = fopen ( «http://www.example.com/» , «rb» );
if ( FALSE === $handle ) exit( «Не удалось открыть поток по url адресу» );
>
?php
while (! feof ( $handle )) $contents .= fread ( $handle , 8192 );
>
fclose ( $handle );
?>
Примечания
Замечание:
Если вы просто хотите получить содержимое файла в виде строки, используйте file_get_contents() , так как эта функция намного производительнее, чем код описанный выше.
Замечание:
Учтите, что fread() читает начиная с текущей позиции файлового указателя. Используйте функцию ftell() для нахождения текущей позиции указателя и функцию rewind() для перемотки позиции указателя в начало.
Смотрите также
- fwrite() — Бинарно-безопасная запись в файл
- fopen() — Открывает файл или URL
- fsockopen() — Открывает соединение с интернет сокетом или доменным сокетом Unix
- popen() — Открывает файловый указатель процесса
- fgets() — Читает строку из файла
- fgetss() — Прочитать строку из файла и отбросить HTML-теги
- fscanf() — Обрабатывает данные из файла в соответствии с форматом
- file() — Читает содержимое файла и помещает его в массив
- fpassthru() — Выводит все оставшиеся данные из файлового указателя
- ftell() — Сообщает текущую позицию чтения/записи файла
- rewind() — Сбрасывает курсор у файлового указателя