Cgi и exec. Исполнение программы
^file::cgi[имяфайла]
^file::cgi[имя файла;env_hash]
^file::cgi[имя файла;env_hash;аргументы]
^file::exec[имя файла]
^file::exec[имя файла;env_hash]
^file::exec[имя файла;env_hash;аргументы]
Конструктор
cgi создает объект класса
file, содержащий результат исполнения программы в соответствии со стандартом CGI.
Внимание: перез запуском программы Parser изменяет текущий каталог на каталог с программой.
Заголовки, которые выдаст CGI-скрипт, конструктор поместит в поля класса
file в ВЕРХНЕМ регистре. Например, если некий скрипт
script.pl, среди прочего, выдает в заголовке строку
field:value, то после работы конструктора
$f[^file::cgi[script.pl]],
обратившись к
$f.FIELD, получим значение
value.
Конструктор
exec аналогичен
file::cgi, но не отделяет HTTP-заголовки от текста, возвращаемого скриптом.
Имя файла - имя файла с путем.
Объект, созданный этими конструкторами, имеет дополнительные поля:
status - информация о статусе завершении программы (обычно 0 - программа завершилась успешно, не 0 - с ошибкой)
stderr - результат считывания стандартного потока ошибок
Пример:
$cgi_file[^file::cgi[new.cgi]]
$cgi_file.text
Выведет на экран результаты работы скрипта
new.cgi.
Необязательные параметры конструкторов
^file::cgi и
^file::exec:
env_hash - хеш, в котором могут задаваться
· | дополнительные переменные окружения, которые впоследствии будут доступны внутри исполняемого скрипта,
|
· | а также переменная stdin, содержащая текст, передаваемый исполняемому скрипту в стандартном потоке ввода.
|
Внимание: можно задавать только стандартные CGI переменные окружения и переменные, имена которых начинаются с CGI_ или HTTP_ (допустимы латинские буквы в ВЕРХНЕМ регистре, цифры, подчеркивание, минус).
Внимание: при обработке HTTP POST запроса, при помощи конструкции
$.stdin[$request:body] вы можете передать в стандартный поток ввода скрипта полученные вами POST-данные. [3.0.8, раньше они передавались по-умолчанию]
Содержание раздела