Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2014-01 КНЯЗЕВА_Эл_бизнес / Электронный бизнес_Князева.doc
Скачиваний:
50
Добавлен:
20.02.2016
Размер:
1.24 Mб
Скачать
    1. Работа с файлами

      1. Стандартные функции php для работы с файлами

В PHP существует достаточно много разных механизмов для работы с файлами различных типов. Можно разделить все файлы на два основных типа: текстовые файлы и файлы данных (картинки, музыка, исполняемый код и все остальные типы файлов).

Открытие файла:

$w=fopen('path_to_file','mode');

где $w — указатель на файл, чтобы обращаться к нужному файлу, когда их открыто более одного.

path_to_file — абсолютный путь к файлу на диске сервера.

mode — режим, в котором открывается файл.

Файл можно открыть в следующих режимах:

'r' — только для чтения.

'r+' — для чтения и записи

'w' — только для записи

'a-' — только для дозаписи. (курсор устанавливается в конец файла).

'a+' — тоже, что и a-, но еще доступно и чтение

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

Запись в файл:

fwrite($w,$text);

где $w - указатель на файл,

$text – текст для записи.

Закрытие файла:

fclose($w);

После выполнения скрипта PHP сам закроет все файлы, но для корректного сохранения информации необходимо сделать это программно.

Продолжение примера - класс Book (см. выше п. 3.5.2):

<?php $bookN=…..

$file_name='./Example.html';

$text=$bookN->Content();

$w=fopen($file_name,'a+');

fwrite($w,$text); // 7

fclose($w);?>

Пример замены текста в файле:

$file_name='/home/roma/address.txt'; // 1 строка

$r=fopen($filename,'r'); // 2 строка

$text=fread($r,filesize($file_name)); // 3 строка

fclose($r); // 4 строка

$text=ereg_replace('213-','670-',$text); // 5 строка

$w=fopen($file_name,'w'); //6 строка

fwrite($w,$text); // 7 строка

fclose($w); // 8 строка

3 строка - в переменную $text считывается содержимое всего файла. Функция filesize() сообщает размер файла. Зная, что файл не очень большой, можно прочесть в переменную всё его содержимое разом.

5 строка - сменились первые три цифры телефона: смена старой АТС на новую цифровую. Функция PHP ereg_replace поможет заменить все 213- на 670- по всему содержимому переменной $text. А измененный вариант записывается обратно в $text.

Пример замены текста в копии файла с сохранением исходного файла:

$file_name='/home/roma/address.txt';

$file_new_name='/home/roma/address_new.txt'; // 2 строка

$r=fopen($filename,'r');

$w=fopen($file_new_name,'w');

while($str=fgets($r,1024)) // 5 строка

{ $str=ereg_replace('213-','670-',$str); // 6 строка

fputs($w,$str); } // 7 строка

fclose($r); // 8

fclose($w); // 9

2 строка Открываем другой (новый) файл для записи

5 строка Начинам читать по одной строке в переменную $str из файла $r до тех пор, пока не достигнем конца файла (EOF — End Of File). Причем, строка читается либо до знака конца строки (EOL — End Of Line), либо до 1024-го символа. Это свойство функции чтения строки fgets().

6 строка Проводим замену 213 на 670.

7 строка Записываем строку $str в файл $w.8, 9. После окончания цикла закрываем оба файла.