Объектно-ориентированный язык сценариев php, страница 15

 

Пример 7.5 Создание и удаление файла (файл primer7_5.php)

 

<?php

touch("primer.php");

print "Файл primer.php создан";          

unlink("primer.php");

print "Файл primer.php удален";

?>

 

В этом примере файл сначала создается, а затем удаляется. Обо всех своих действиях программа сообщает пользователю через функцию print(). Иногда вам может понадобиться создать файл, поработать с ним, а затем удалить его. Такие файлы называют временными и их довольно часто используют в различных программах

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

Для того, чтобы с содержимым файла можно было работать, его нужно открыть. Для этого существует функция fopen(). Данной функции передаются два аргумента – строка с именем файла и путем к нему, а также строка, описывающая режим открытия файла. Самые простые режимы – это чтение, запись и добавление в конец файла. Строки, описывающие режим открытия файла, выглядят соответственно как "r", "w" и "a". Функция fopen() возвращает целое число, если файл удалось открыть, и значение false, если по каким-то причинам этого сделать не удалось. Целое число (указатель на файл), возвращаемое функцией, необходимо присвоить некоторой переменной. Позднее, если вы захотите выполнить над файлом некоторые действия, вам будет достаточно указать только имя этой переменной, а не полный или относительный путь к файлу.

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

Если открыть файл в режиме добавления ("a"), то все новые данные будут добавлены в конец файла. При этом, если файла нет, то он создается.

При открытии файла для чтения (в режиме "r") если файл существует, то курсор устанавливается в начало файла и считывается указанное количество байт, если файла нет, то выдается ошибка.

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

Чтение из файла с помощью функции fread()

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

Например, пусть в файле guess.txt записано две строки текста:

"Люди чаще капитулируют,

чем терпят крушение."

Обработаем файл с помощью следующей программы.

Пример 7.6. Чтение из файла с помощью функции fread() (файл primer7_6.php)

<?php

$p = fopen("guess.txt", "r");

$line = fread($p,10);

print $line."<hr>";

fclose($p);

$p = fopen("guess.txt", "r");

$line = fread($p, filesize("guess.txt"));

print $line;

fclose($p);

?>

Результатом выполнения программы буде вывод следующих строк.

Проанализируем действие программы. Во второй строке файл открывается для чтения и связывается с дескриптором $p. В переменную $line прочитывается 10 символов из файла и выводятся на экран. Тэг <hr> завершает вывод горизонтальной линией.

Затем файл закрывается и вновь открывается для чтения. В 7-ой строке программы в переменную $line записывается количество символов, определяемых функцией filesize() – а это и есть размер файла. Содержимое файла будет выведено полностью, но в одну строку.

Построчное чтение из файла с помощью fgets()

Открыв файл для чтения, может понадобиться прочитать из него несколько строк. Для этого достаточно воспользоваться функцией fgets(). Данная функция также, как и fread() имеет два аргумента – указатель на открытый файл, из которого мы собираемся читать, и максимальное количество символов, которое можно прочесть из файла. Функция fgets() будет читать данные из файла до тех пор, пока не дойдет до конца строки (не встретит символ конца строки) или конца файла.

 

Пример 7.7 Построчное чтение из файла (файл primer7_7.php)

 

<?php