Главная Мой профиль Регистрация Выход Вход
Вт
17.10.2017
08:54
Приветствую Вас Гость | RSS ВходРегистрацияГлавная
Поиск
Друзья сайта
Опрос
Какой у вас процессор?
1. Intel Core 2 Duo
2. Не Intel у меня, ацтаньте!
3. Intel Pentium 4
4. Intel Core i7
5. Беспанятия :(
6. Ниже Pentium 4
7. Intel Core 2 Quad
8. Intel Core 2 Extreme
Всего ответов: 415
Статистика




Онлайн всего: 1
Гостей: 1
Пользователей: 0



Главная » Уроки » Уроки PHP

Урок 9. Работа с файлами.
______________________
УРОК 9. Работа с файлами.
______________________

Работу с файлами можно разделить на три этапа:
1. Открытие файла.
2. Работа с файлом.
3. Закрытие файла.
Рассмотрим каждый пункт подробнее:

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

Для открытия файла используется функция fopen(). Ей нужно передать 2 параметра - имя файла и режим файла.

$var = fopen("myfile.txt", "a+");

Основные режимы открытия файлов:
r – открытие файла только для чтения.
r+ - открытие файла одновременно на чтение и запись.
w – создание нового пустого файла. Если на момент вызова уже существует такой файл, то он уничтожается.
w+ - аналогичен r+, только если на момент вызова фай такой существует, его содержимое удаляется.
a – открывает существующий файл в режиме записи, при этом указатель сдвигается на последний байт файла (на конец файла).
a+ - открывает файл в режиме чтения и записи при этом указатель сдвигается на последний байт файла (на конец файла). Содержимое файла не удаляется.

...Работа с файлом...

Дли записи каких-либо данных в файл используется функция fwrite(). Она имеет 2 обязательных параметра - дескриптор файла и текст который будет записан.


$text = 'Строчка которую будем записывать';
fwrite($var, $text);

При открытии файла его желательно заблокировать, чтобы в то время как мы туда что-либо записываем другие процессы не могли работать с файлом пока не закончим мы, иначе могут возникнуть потери данных.
Для блокировки используется функция flock(). Параметры - дескриптор файла и режим блокировки. (LOCK_EX - для блокировки, LOCK_UN - для разблокировки). Теперь весь код:


$fp = fopen("count.txt","a+");
flock($fp, LOCK_EX);
$text = "Строка которую будем записывать";
fwrite($fp, $text);
flock($fp, LOCK_UN);
fclose($fp);
//немного забегу вперед, это закрытие файла.
?>

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

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

fclose($var);

...Практикуемся...

Теперь попробуем сделать из этого что-нибудь полезное. Например, при заходе на страничку записывается IP адрес и браузер и даже ось зашедшего.
Чтобы узнать айпи адрес воспользуемся суперглобальным массивом $_SERVER['REMOTE_ADDR']; Чтобы узнать ОС и тип браузера - $_SERVER['HTTP_USER_AGENT'];
Еще один нюанс. Перед тем как записать что-либо в файл нам нужно удостовериться, существует он или нет. Итак, пишем скрипт:

if (file_exists('info.txt')) //проверяем, существует ли файл
{
$fp = fopen("info.txt","a+");
//если существуем, открываем файл
$user = 'IP адрес: '. $_SERVER['REMOTE_ADDR'] . 'Браузер: ' . $_SERVER['HTTP_USER_AGENT'] . "\r";//записываем в переменную $user IP адрес и тип браузера (используем конкатенацию).
fwrite($fp, $user);//записываем в файл
fclose($fp);//закрываем файл.
echo "Всё успешно записано";//выводим надпись
}
else
{
fopen("info.txt","w");
//если файла info.txt не существует, создаем его
echo 'Не найден файл test.txt';
}
?>

Здесь я использовал пока неизвестную вам функцию file_exists(). Она проверяет существование файла.
Вот и весь скрипт. Заметьте, я не делал блокировку файла, т.к. в нашем случае вероятность того что несколько пользователей одновременно откроют страничку ничтожно мала. Всё же если ваш сайт очень очень посещаемый, то можете дописать.

Обсуждение урока на форуме.

Категория: Уроки PHP | Добавил: JUMP (15.11.2010)
Просмотров: 2287 | Теги: php, урок php, мини-уроки php, php для новичков, работа с файлами | Рейтинг: 5.0/1


Форма входа
Логин:
Пароль:
Меню сайта
Категории
Класс 1
Здесь учат самым элементарным вещам. Этот уровень необходимо посетить тем, кто ещё плохо ориентируется в компьютерах.
Класс 2
Здесь даются основные навыки хакерства. Этот класс для тех кто давно на "ты" с компьютерами, изучил винду вдоль и поперёк, а потом устал просто так сёрфить по инету и решил научится ещё чему-нибудь ;)
Уроки PHP
Мини-уроки php by JUMP
Мини-чат
    Все материалы на сайте предоставлены исключительно в ознакомительных целях.
     Администрация не несет никакой ответственности за последствия их использования.