kobapan@wiLiki
Login
Gauche

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

となる。

こうすれば、例えば画像データを返すスクリプトなんかが作れる。

参考

cgi-header

Gauche Scheme Lisp

Debian
Emacs
Firefox
Gauche
JavaScript
Linux
Scheme
org-mode/latex

More ...