ТОП PHP скрипт сегодня: QR

Вы Тут:

Главная ›› Книги ›› PHP 5.0 для чайников ›› Функции fread() и fgets()

Чтение и запись файлов в языке PHP

Чтение из файлов в PHP можно осуществить различными способами. Например, с помощью функции fread(). Она принимает дескриптор файла - число, которое определяет длину строки из файла и возвращает эту строку (листинг 11.6).

Листинг 11.6. Вывод строки из файла

<html>
<head>
<title> Вывод строки </title>
</head>
<body>
<?php

// открытие файла
$file_pionter = fopen ("info.txt", "r") or die ("Ошибка открытия файла");

// чтение файла пяти символов
$txt = fread ($file_pionter, 5) or die ("Ошибка чтения файла");

// закрытие файла
fclose($file_pionter) or die ("Ошибка закрытия файла");

// вывод строки
echo $txt;
?>
</body>
</html>

Обратите внимание на конструкцию or die(). Функция die() является эквивалентом безусловного оператора exit, который разбирался в главе 6. Так как приоритет оператора or ниже чем =, то сначала будет выполняться операция присваивания, а затем, при условии, что левый операнд равен FALSE, - функция die(), которая позволит выйти из программы. Заметьте, что без использования Конструкции or die() выводится сообщение об ошибке, но программа продолжает выполняться дальше.

Вернемся к рассмотрению функции fread(). В данном примере из файла info.txt читаются первые пять символов, которые записываются в виде строке в переменную $txt. Если при чтении достигнут конец файла, функция прекращает свое выполнение и возвращает строку, содержащую ровно столько символов, сколько прочиталось (несмотря на то, что длина строки может быть меньше запрашиваемой).

В PHP имеется похожая по выполнению функция fgets(), которая читает символы из файлов в количестве равном заданному минус единица и возвращает их. Чтение прекращается не только при достижении конца файла, но и если встречается символ перевода строки \n (листинг 11.7).

Листинг 11.7. Работа функции fgets()

<html>
<head>
<title> Работа функции fgets() </title>
</head>
<body>
<?php

// открытие файла
$file_pionter = fopen ("info.txt", "r") or die ("Ошибка открытия файла");

// чтение файла четырех символов
$txt = fgets ($file_pionter, 5) or die ("Ошибка чтения файла");

// закрытие файла
fclose ($file_pionter) or die ("Ошибка чтения файла");

// вывод строки
echo $txt;
?>
</body>
</html>

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

Для записи строк в файл используются функции fwrite() и fputs(). По сути, они выполняют одно и тоже, отличаясь разве что названиями. В качестве входных параметров выступают дескриптор файла, который нужно открыть в режиме записи, и строка для записи в файл. Также имеется еще один необязательный аргумент в виде целочисленного значения, которое указывает на количество символов строки, записываемых в файл. Если его опустить, то она запишется полностью. Аналогично другим разобранным функциям fwrite() и fputs() возвращают TRUE при удачной записи и FALSE в противном случае (листинг 11.8).

Листинг 11.8. Запись строки в файл

<html>
<head>
<title> Запись строки в файл </title>
</head>
<body>
<?php

// открытие файла на запись
$file_pionter = fopen ("info.txt", "w") or die( "Ошибка открытия файла");

// запись строки в файл
fwrite ($file_pionter, "Hello, World!\n") or die ("Ошибка записи файла");

// закрытие файла
fclose ($file_pionter) or die ("Ошибка закрытия файла");
?>
</body>
</html>

Другие на сайте, сейчас читают:

Сейчас читаютСкриншот 2. Скрипт PHP QR Code