| Опять же, навыки работы с файлами полезны при создании наиболее популярных Веб-приложений (гостевые книги, форумы, чаты….). Да и вообще, эта тема является важным разделом любого языка программирования. Разберемся… Рассмотрим функции на которых и строится вся работа. Основной является функция открытия файла: 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 |