Gauche:cgiでechoスクリプト
例えば
http://example.com/img.scm?h=400&w=300
と呼び出したら、400x300pxの画像データを送ってよこすcgiスクリプトを書くには?
Gaucheをcgiとして使い、helloと表示するには、教科書では以下のようなプログラムが紹介されている。
(use www.cgi) (use text.html-lite) (cgi-main (lambda (params) (list (cgi-header) (html-doctype) (html:head (html:body (html:p "hello"))))))
しかし、この例では当然ながら hello 以外の html マークアップも出力される。ページのソースは、
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <head><body><p>hello</p ></body ></head >
となる。
そうではなくて、単純に hello とだけ出力したい場合は、以下のようにする。
(use www.cgi) (use text.tree) (write-tree (cgi-header)) (display "hello")
ページのソースは、
hello
となる。
こうすれば、例えば画像データを返すスクリプトなんかが作れる。
参考
Gauche Scheme Lisp