- •Размещение файлов на сервере
- •Задание
- •Теория и примеры
- •1 Загрузка (upload) файлов на сервер
- •Upload_err_ok – значение: 0. Отсутствие ошибки, признак успешной загрузки файла
- •Upload_err_no_tmp_dir – значение: 6. Отсутствует директория для временного сохранения файла
- •Обработка загруженного файла
- •2 Обработка данных формы
- •3 Работа с файлами
- •Пример 7 Чтение в строку файла с удаленной машине
- •Пример 8 Открытие и запись в файл с контролем ошибок
- •Чтение строки из файла fgets.
- •Достигнут ли конец файла – feof.
- •Смотри примеры № № 5, 7
- •Смотри примеры выше
- •4 Работа с датой и временем
- •5 Регулярные выражения
3 Работа с файлами
Открытие файла – fopen
Возвращает идентификатор открытого файла.
resource fopen (string filename, string mode)
filename – имя файла или URL
mode – режим открытия, принимает значения:
r – файл открывается для чтения; указатель устанавливается на начало файла; если файл не существует, функция возвращает false.
r+ – файл открывается для чтения и для записи; указатель устанавливается на начало файла; если файл не существует, функция возвращает false.
w – создается пустой файл для записи; если файл с указанным именем существует, он будет перезаписан.
w+ – файл открывается для чтения и для записи; если файл не существует, он будет создан; если файл существует, он будет перезаписан; указатель устанавливается на начало файла.
a – файл открывается для записи; указатель устанавливается на конец файла; если файл не существует, функция возвращает false.
a+ – файл открывается в режиме чтения и записи; указатель устанавливается на конец файла; если файл не существует, он будет создан.
После любого из вышеперечисленных режимов может следовать модификатор b или t. Модификатор b означает, что файл открывается в бинарном режиме, t – в текстовом. Если модификатор не указан, используется бинарный режим.
Пример5 Примеры использования fopen
<?php
$handle = fopen("/home/rasmus/file.txt", "r");
$handle = fopen("/home/rasmus/file.gif", "wb");
$handle = fopen("http://www.example.com/", "r");
$handle = fopen("ftp://user:password@example.com/somefile.txt", "w");
?>
Изменение позиции чтения записи открытого файла – fseek.
int fseek (resource handle, int offset [, int whence])
handle – идентификатор файла, открытого с помощью fopen.
offset – смещение в байтах.
whence – позиция, от которой отсчитывается смещение (в байтах) может принимать значения:
SEEK_SET – с начала файла;
SEEK_CUR – с текущей позиции;
SEEK_END – с конца файла.
Если параметр whence не указан используется значение SEEK_SET.
При успешном вызове, функция возвращает 0, если не удалось установить позицию, возвращает –1.
Пример 6 Использование fseek
<?php
$fp = fopen('somefile.txt', 'r');
// Читаем данные
$data = fgets($fp, 4096);
// Возвращаемся к началу файла
fseek($fp, 0);
fclose($fp);
?>
Чтение бинарного файла – fread.
string fread (resource handle, int length)
Читает не больше length байт из файла, на который указывает handle. Чтение прекращается, если прочитано length байт или достигнут конец файла. Возвращает строку с прочитанными данными или false в случае ошибки.
Пример 7 Чтение в строку файла с удаленной машине
<?php
$handle = fopen("http://www.example.com/", "rb");
$contents = '';
while (!feof($handle)) {
// добавляем к строке очередную часть файла
$contents .= fread($handle, 8192);
}
fclose($handle);
?>
Запись в бинарный файл – fwrite.
int fwrite (resource handle, string str [, int length])
Записывает содержимое строки str в файл, на который указывает handle. Если указан третий аргумент, запись прекращается, когда в файл записано length байт или достигнут конец строки. Функция возвращает количество записанных байт или false в случае ошибки.