3. Операторы Парсера
Формат вызова
^name[полное_имя_файла]
Аргументы
полное_имя_файла путь, из которого требуется выделить имя файла.
Описание
Оператор возвращает имя файла без пути и расширения.
Примеры
Вызов ^name[/dir/subdir/index.html] вернет значение index.
Формат вызова
^-f[имя_файла]
Аргументы
имя_файла имя файла, который нужно найти.
Описание
Оператор возвращает путь, если файл с указанным именем существует. В противном случае возвращает пустую строку.
Примеры
|
^var[src;^-f[image.gif]] ^ifdef[^var[src];<IMG SRC=^var[src]>;]
|
|
|
|
Формат вызова
^stat[что_вернуть;путь]
^stat[fsize;путь;обозначение_байта;обозначене_Кб;обозначение_Мб]
Аргументы
что_вернуть тип возвращаемого значения.
путь путь к файлу.
обозначение_байта обозначение единицы измерения байт.
обозначене_Кб обозначение единицы измерения килобайт.
обозначение_Мб обозначение единицы измерения мегабайт.
Описание
Оператор возвращает информацию о файле.
Предусмотрены следующие типы информации:
size размер файла в байтах.
fsize форматированный размер файла. Если запрашивается этот тип информации, то оператор имеет не два аргумента, а пять. Результатом вызова является размер файла в мегабайтах, килобайтах или байтах. Полученное значение округляется до целого. Для обозначения единицы измерения используется указанное обозначение.
atime время последнего обращения.
mtime время последнего изменения.
ctime время создания.
Примеры
|
Файл: <A HREF="big.zip">big.zip</A><BR> Размер: ^stat[fsize;big.zip;bytes;Kb;Mb]<BR> Последнее обновление: ^stat[mtime;big.zip]
|
|
|
|
Формат вызова
^find[имя_файла]
^find[имя_файла;сообщение]
Аргументы
имя_файла имя искомого файла.
сообщение текст, который вернет оператор в том случае, если файл не будет найден.
Описание
Оператор возвращает относительное имя файла при условии, что он существует и находится на текущем или более высоком уровне. В противном случае оператор возвращает сообщение, задаваемое вторым аргументом.
Примеры
<IMG SRC="^find[section.gif;default.gif]">
Файл section.gif будет найден даже в том случае, если сам шаблон находится в каталоге, расположенном глубже, чем графический файл.
Формат вызова
^index[путь]
^index[путь;шаблон]
Аргументы
путь путь к каталогу.
шаблон шаблон для отбора файлов и каталогов.
Описание
Оператор загружает в текущую таблицу список файлов и каталогов, находящихся в указанном каталоге. Если указан шаблон, то в список попадут только те файлы и каталоги, имена которых соответствуют шаблону. Список файлов и каталогов сортируется в лексикографическом порядке.
Замечание. Шаблон это регулярное выражение, соответствующее стандарту POSIX 1003.2, раздел 2.8, частичный перевод которого приведен в Приложении C. В дополнение к возможностям, которые устанавливает этот стандарт, в Парсере предусмотрены следующие обозначения:
\\ обратная косая черта (бэк-слэш);
\t символ табуляции;
\d любая цифра от 0 до 9;
\s пробел, символ табуляции, символ перевода строки.
Примеры
|
^context[dir; ^index[pictures;\.(gif|jpg)$] Картинки в каталоге pictures:<BR> ^menu[^item[0]<BR>] ]
|
|
|
|
Формат вызова
^download[полное_имя_файла]
^download[полное_имя_файла;локальное_имя_файла]
^download[полное_имя_файла;локальное_имя_файла;mime-type]
Аргументы
полное_имя_файла полное имя выгружаемого файла.
локальное_имя_файла имя файла, под которым посетителю предлагается записать файл на локальный диск.
mime-type тип данных.
Описание
Оператор выдает программе-клиенту файл с указанным полным именем. Если не указано локальное имя файла, то используется имя выгружаемого файла без пути. Тип данных, если он не указан, автоматически определяется Парсером по расширению файла. Таблицу соответствий типов расширениям располагают в макросе MIME_TYPES. Таблица имеет следующий формат.
|
расширение_имени_файла_1 mime-type_1 ... расширение_имени_файла_N mime-type_N
|
|
|
|
Если тип данных не удается определить по таблице, используется тип application/octet-stream. Ниже приведен типичный текст макроса MIME_TYPES.
|
@MIME_TYPES[] определения mime-type для ^^download zip application/zip doc application/msword xls application/vnd.ms-excel pdf application/pdf ppt application/powerpoint rtf application/rtf gif image/gif jpg image/jpeg png image/png tif image/tiff html text/html htm text/html txt text/plain mts application/metastream mid audio/midi midi audio/midi p3 audio/mpeg ram audio/x-pn-realaudio rpm audio/x-pn-realaudio-plugin ra audio/x-realaudio wav audio/x-wav au audio/basic mpg video/mpeg avi video/x-msvideo mov video/quicktime swf application/x-shockwave-flash
|
|
|
|
Примеры
^download[/restricted/file.zip;special_user]
Формат вызова
^upload[поле_формы;что_вернуть]
^upload[поле формы;имя_файла]
Аргументы
поле_формы имя поля формы типа FILE.
что_вернуть тип возвращаемого значения.
имя_файла имя копируемого файла.
Описание
Если аргумент что_вернуть имеет одно из значений name, size или value, то оператор вернет соответственно имя, размер или содержимое файла, введенного пользователем в это поле. В противном случае значение второго аргумента будет интерпретироваться как имя файла. Под этим именем введенный в поле файл будет загружен на сервер.
Примеры
|
<form method="post" enctype="multipart/form-data"> <input type="file" name="image"> <input type="submit"> </form> ^ifdef[^form[image]; ^upload[image;/upload/^upload[image;name]]
Записан файл ^upload[image;name] объемом ^upload[image;size] байт. ;]
|
|
|
|
Формат вызова
^upload[поле_формы;uuencode;имя_файла]
Аргументы
поле_формы имя поля формы типа FILE.
uuencode обозначает, что используется именно эта форма оператора upload.
имя_файла имя файла, указываемое в заголовке последовательности uuencode.
Описание
Оператор преобразует файл, введенный в поле формы, в формат uuencode и возвращает полученную последовательность. В заголовке последовательности указывается имя файла, переданное в аргументе имя_файла.
Примеры
|
^sendmail[to: user@domain.ru from: mymail@domain.ru subject: Веселые картинки Content-Type: multipart/mixed^; boundary="----=_NextPart_000_009C_01BEA7AE.47C51900"
This is a multi-part message in MIME format.
------=_NextPart_000_009C_01BEA7AE.47C51900 Content-Type: text/plain^; charset=koi8-r
Вот картинка, которую ты так давно просил.
------=_NextPart_000_009C_01BEA7AE.47C51900 Content-Type: text/html^; name="^upload[picture;name]" Content-Disposition: attachment^; filename="^upload[picture;name]" Content-Transfer-Encoding: uuencode
^upload[picture;uuencode;^upload[picture;name]]
------=_NextPart_000_009C_01BEA7AE.47C51900-- ]
|
|
|
|
Формат вызова
^unlink[имя_файла]
Аргументы
имя_файла имя удаляемого файла.
Описание
Оператор удаляет файл с указанным именем.
Примеры
^unlink[delme.txt]
Формат вызова
^include[путь]
^include[asis;путь]
Аргументы
путь имя файла, который нужно обработать.
Описание
Оператор вставляет содержимое файла из пути, обрабатывая макросы внутри него.
Если задан параметр asis, то включаемые данные не обрабатываются парсером, а вставляются "КАК ЕСТЬ".
Примеры
|
^include[/inc/macros.inc]
|
|
|
|
|