PHP скрипты

MySQL

Apache

phpMyADmin

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

Главная Страница » Самоучитель PHP 5 для чайников с примерами » Чтение и запись файлов в 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›

Поделиться с друзьями