IZONE - http://www.izcity.com/ - бесплатный софт, вэб-сервисы, ресурсы для раскрутки, свежие номера журнала "Internet Zone".

Работа с файлами и каталогами на Perl

Чтение и запись файлов и каталогов является едва ли не главным достоинством Perl. Практически любой Perl-скрипт использует либо запись в файлы, либо поиск определенных строк в файле, либо запись или загрузку файлов в каталоги.

Кратко напомню основные положения:

Файл можно открывать для чтения, записи, добавления либо поиска определенных строк.

  • Открыть файл для чтения: open (FILE, "$file");
  • Открыть файл для записи: open (FILE, ">$file");
  • Открыть файл для добавления: open (FILE, ">>$file");
  • Открыть файл для чтения и добавления: open (FILE, "+<$file");

Где FILE-это дескриптор или описатель файла, т. е. имя, под которым он фигурирует в программе. Может быть любым набором символов, рекомендуется набирать прописными буквами во избежание неоднозначностей.

$file-переменная для файла, содержит обычно имя файла и путь к нему. Предпочтительно объявить эту переменную в начале скрипта. Это удобно, если файл находится где-то глубоко в подкаталогах, к примеру, неудобно все время набирать /usr/local/htdocs/main/pages/file.html.

Думаю, с этим особых вопросов не возникнет. Еще нужно отметить, что содержимое файла можно читать построчно или в массив:

Что касается каталога, то его тоже можно открывать для чтения командой readdir. Для того, чтобы понять как все это происходит, рассмотрим практические примеры.

 

Пример 1.

Рассмотрим сценарий регистрации пользователя на веб-сервере. Имя пользователя и его пароль записываются в текстовый файл и используются для его последующей аутентификации.

Скрипт выдает ответ в виде html-страницы, содержащей всю информацию, введенную пользователем.

 

Пример 2.

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

Надеюсь, я объяснил все достаточно подробно. Я выбрал намеренно сложные примеры, чтобы показать все операции, которые можно производить с файлами и каталогами. Файлы еще можно загружать на сервер через веб. Этому посвящен следующий раздел.

Загрузка файлов на сервер через Интернет.

Файлы можно загружать на веб-сервер через Интернет, используя формы. Вы, наверное, сами не раз это делали. Разберем более подробно, как это делается. Нужно создать форму с полем типа file и методом кодировки multipart/form-data.

Функция Javascript использована для того, чтобы передать на сервер имя загружаемого файла, включая полный путь. Далее, скрипт декодирует его, отбросит путь и загрузит файл под его именем. Функцию для декодирования в этом случае я использую готовую, нашел в Интернете, за что большое спасибо ее разработчику.

Как видите, довольно сложная и громоздкая, зато загрузка проходит без проблем. Далее нужно получить имя файла и отбросить путь, оставив только имя.

Все, загрузка завершена. Таким способом можно загружать сразу несколько файлов-5 или 10, создав для каждого элемент формы и, само собой, добавив в скрипте нужное количество обработчиков.

Oleg Tryvol, mailto:olegtr@imail.ru
Ресурсы для web-программистов

 


Copyright © "Internet Zone", http://www.izcity.com/, info@izcity.com