■ CGI初歩の初歩

■ if文とfor文

[an error occurred while processing this directive]

xx = 1
xx = 2
xx = 3
xx = 4
xx = 5
xx = 6
xx = 7
xx = 8
xx = 9
xx = 10

 if文、for文ともCと同じ感じで使える。上の例は互い違いに色を変えている。

■ 日時を取得して表示する

[an error occurred while processing this directive]

現在の時刻は2024/04/26 16:28です

 Cと同じようにprintfが使用できる。

■ cgiのスクリプトを表示する

[an error occurred while processing this directive]

 <pre>を使って表示できるようにしたが、それだとcgiのソースの中のhtmlタグが解釈されてしまう。それを回避するために作ったcgi。ファイルから読み込み表示するが、不等号記号だったら、置換するようにしている。

 呼び出すときにSSIを使っているが、exec cgi="cgisource.cgi?file=test1.cgi"の用に使用する。ただし、iswebではこの形式ではパラメータが渡せないようになっている。セキュリティのために禁じられているのでしょう。色々試した結果、include virtual="cgisource.cgi?file=test1.cgi"の形式なら上手く行きました。

■ cgiのスクリプトを表示する2

[an error occurred while processing this directive]

 一つ上の項のスクリプトをちょっと改良してみました。タブを空白に展開するようにしてみました。私は何時もタブを4に設定しているので、空白に展開しないと8桁ごとのタブ設定だと解釈されてずれてしまいます。

 1 while ...という構文はCには無いので、ちょっと違和感を覚えますね。length($&) * $tab - length($`) % $tabで、タブを幾つの空白に置換するかを計算しています。

■ cgiのスクリプトを表示する3

[an error occurred while processing this directive]

38行目から54行目までを表示:

[an error occurred while processing this directive]

 一つ上の項のスクリプトをさらに改良してみました。パラメータで指定された行を表示する機能を追加しました。変更したのは主に、渡されたパラメータを解析する部分です。

 exec cgi="cgisource.cgi?file=test1.cgi&line=5-10"の用に呼び出して使用します。