Суббота, 19.05.2012, 05:04
 
Главная Регистрация Вход
Приветствую Вас, Гость · RSS 
Меню сайта
Промо

Категории каталога
Уроки по PHP [58]
Уроки по PHP
Уроки по PERL/CGI [21]
Наш опрос
Почему Вы хотите покинуть данный сайт?
Всего ответов: 127
Статистика

Онлайн всего: 2
Гостей: 2
Пользователей: 0
 Каталог статей
Главная » Статьи » Уроки по web-программированию » Уроки по PHP


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

Разберемся…
Рассмотрим функции на которых и строится вся работа. Основной является функция открытия файла:
fopen("Путь к файлу", "режим открытия");
"Путь к файлу" - без комментариев,
"режим открытия" - этот аргумент указывает на режим в котором должен быть открыт файл: для чтения, записи, дополнения … и др.

Приведем возможные режимы открытия:
"a" - дополнить
"а+" - дополнить и прочитать
"r" - только прочитать
"r+" - прочитать и записать (запись в начало файла)
"w" - только записать (существующее содержимое будет затерто)
"w+" - записать и прочитать (существующее содержимое будет затерто)
В довесок к "открытию" добавим "чтение".
Функция чтения из файла:
fread("Путь к файлу", "кол-во символов");
"кол-во символов" - если указать 10, то прочтутся первые 10 символов.

Все просто.
Вопрос из зала :-))
А откуда я знаю сколько символов в моем файле?
Ответ: В РНР есть функция
filesize("Путь к файлу");
которая определяет то самое кол-во. Надо ее подставить и будет читаться весь файл. Нет проблем!!!

"Открытие", "чтение" …. не хватает "записи" и "закрытия".
"Запись" - позже, закрытие же элементарно
close("Все тот же путь к файлу");

Чтобы немного освежить тему предлагаю пример с практикой вышеизложенного:

Описание действий:
выберем файл через кнопку "обзор…" в форме.
РНР скрипт выведет его на экран

<html>
<head>
<title>Тарам-парарам</title>
</head>
<body>
<form method="get">
<input type="File" name="file"> <!-- тот самый "обзор…" -->
<input type="Submit">
</form>

<?php
if(!$file==0){
$fpn = fopen($file, "r");
$text = fread($fpn, filesize($file));
$text = htmlspecialchars($text);
fclose($fpn);
echo $text;
}
?>

</body>
</html>

Разбор полетов:

Сначала была создана форма, в окно которой мы загружали имя файла. Затем нажимая кнопку, мы передавали переменную $file скрипту.

Скрипт:
Проверка - не пуста ли переменная $file, если нет, то открываем файл, чтобы только прочитать.
В переменной $text забиваем весь файл до конца.
Преобразуем текст в "безопасный" (функция htmlspecialchars() возвращает строку, в которой все зарезервированные в HTML символы переведены в "безопасные" строки, например, символ '&' в '&' , '<' в '<' и т.д.)
Закрываем файл и выводим уже готовый текст на экран.
Вернемся к "Записи", оставленной пока без внимания. Запись осуществляется таким же простым способом как чтение из файла.
Вот:
fputs("Уже надоевший путь к файлу", "строка", ["кол-во символов"]);
Здесь "строка" это то место куда можно втиснуть свою переменную с текстом.
"кол-во символов" (необязательный параметр) означает количество символов, которое отнимется от строки и запишется в файл.

Пример с включением функции записи:

<?php
$file = fopen("какой-то.htm", "a");
$data = "<br>".date("d-m-Y h:i:s")." ".$REMOTE_ADDR;
fputs($file, $data);
fclose($file);
?>

Это тот самый пример из начала статьи, про обратную связь. Вообщем здесь все ясно, поясним только строчку которую записываем в файл:

"<br>".date("d-m-Y h:i:s")." ".$REMOTE_ADDR;
Начнем сначала.
Напомню, что оператор "." является оператором конкатенации, то есть соединения ("Я"."блоко" = "Яблоко").

date() - функция возвращает дату и время в указанном формате:
d - день;
m - месяц;
Y - 4-значное обозначение года;
h:i:s - чч:мм:сс;
$REMOTE_ADDR - возвращает IP адрес гостя.

В примере, вся эта информация записывается в файл .htm, а мы хитрые и ловкие можем потом составлять статистику, если не лень.

U N O F F I C I A L часть

Все основное мы разобрали, предлагаю поднять руку на вещи не менее важные, но так сказать оклоточные. Возьмем хороший темп.

Рассмотрим копирование, удаление и переименование файлов:
Для копирования файла исрользуется команда
copy("Файл", "Место копирования");
Проще всего запомнить функцию копирования так: COPY (Откуда, Куда)
Пример:

<?php

// your_file.txt копируется в ../TEXT/your_file.txt

$file = "your_file.txt";
copy($file, "../TEXT/" . $file);

?>

Для удаления файла навсегда существует функция
unlink("путь к файлу");
Навсегда - звучит страшно, куда приятнее функция переименования
rename("старое имя", "новое имя");
Хотелось бы ввести еще одну очень важную функцию.
Что ж, валяйте сударь, сегодня ваш день …..

Функция chmod() - изменяет права доступа к файлу согласно указанному значению замены
сhmod("файл", "замена");
вот представте, вы пытаетесь записать что-то в файл лежащий у вас в вашей папке на сервере, а вам на это наглым образом отвечают
P E R M I S S I O N D E N I E D
По моему так отвратительно, поэтому привожу табличку со всеми правами файлов которые Вы, как хозяин, можете менять

Примечание: система определяется операционкой сервака.

Права доступа в Unix-системах:
0(000) -- нет прав доступа
1(001) - выполняемый файл
2(010) - право доступа по записи
3(011) -- право доступа по записи и запуску
4(100) -- право доступа по чтению
5(101) -- право доступа по чтению и запуску
6(110) -- право доступа по чтению и записи
7(111) -- право доступа по чтению, записи и запуску

Права доступа в Windows:
1(0000100) - выполняемый файл
2(0000200) - право доступа по записи
4(0000400) -- право доступа по чтению
Сделав небольшую прикидку мы видим, что одна из систем, не будем показывать пальцем, гораздо "мяхше и слабше"…..

И напоследок предлагаю, совершенно даром, маленькую функцию
nl2br("переменная с текстом");
Замечательна ее работа, в тексте после каждого символа возврата каретки она ставит <BR>. Давайте ее мысленно отнесем к той категории скриптов, где надо что-то записывать в HTML файл для последующего удобоваримого прочтения.

Удачи вам! и больше юмора

Популярные статьи | Последние статьи


Источник: pele.spb.ru
Категория: Уроки по PHP | Добавил: X12 (27.05.2009) | Автор: HiWell
Просмотров: 1414 | Рейтинг: 0.0/0 |

У нас можно скачать GPS карты, а также заказать необходимые gps карты
Всего комментариев: 0
Имя *:
Email:
Код *:
Хостинг от uCoz, | Политика конфедициальности  
Информация: