ビギナーズ CGI

 初歩から始める初心者向けPerl-CGI講座  

| トップページ | CGI設置 | CGI作成 | 作成事例 | 設置用語 | 作成用語 | 関数リファレンス | FAQ | お問合せ |
  
CGIの設置方法
フリーで配布されているCGIを設置する際の手順や注意事項などの説明です。

CGI作成の初歩
初めてCGIを作る方向けの手順を簡単な例で説明しています。

CGI作成ヒント集
こういう事をする時は、どのように行えばいいのか?など具体的な事例を紹介します。

CGIの設置に関する用語
CGIの作成に関する用語
CGIの設置や作成時に使われている用語や関連知識を掲載しています。

設置に関するFAQ
作成に関するFAQ
設置や作成をする際に起こりがちなトラブルの説明と、よくある質問とその回答を掲載しています。


 
 

CGI 作成の初歩
 HTMLページを表示してみる  文字列の置き換え
 複数行のHTMLページを表示  フォームから入力された値を表示
 ソース内にコメントを書く  ファイルに書き出す
 変数を使った簡単な計算  ファイルから読み込む
 条件式を使って分岐する  フォーム入力からファイルに書き出す
 文字列の扱い方を練習  サブルーチンを使用してみる
 ループを練習 (繰り返し処理)  現在の時刻を取得する
 配列の簡単な使い方  ファイルの簡単な操作をする
 配列の操作を行ってみる  不特定が書き込むファイルの排他処理
 文字列の検索と取出し  CGI から画像を表示する



6. 文字列の扱い方を練習する

HTMLページで文字列の間に変数の内容を表示してみます。

実行結果
変数$a に入っているのは 100 です。
変数$a に100を足した数は 200 です。

上の例のように、HTMLで書き出したページの中にそのまま変数を使い、内容を表示する事ができます。


変数をHTMLページ内で使うと変数の内容が表示されるので、使いたくない場合(そのまま $a と表示したい場合) は
\$a のように先頭に \ を付けてエスケープします。
例えば今回の例では $a に内容が入っていますので、数字が表示されますが、使われていない変数( $bbb など) を
同様に挿入していたとすると、変数の中には何も入っていませんので、$bbb など入れた場所には何も表示されません。


このように CGI で書き出すHTMLページには自由に変数が使えるので、カウンタやチャットの人数表示など通常は
SSI などを使わなければ表示できない値でも、自由に表示する事ができます。


ダブルクォーテーション(”)とシングルクォーテーション(’)の違い

変数に入れる時、文字列をダブルクォーテーションで囲うかシングルクォーテーションで
囲うかにより、展開されるか、展開されずにそのまま表示されるかの違いがあります。





実行結果
ダブルクォーテーション 太郎
シングルクォーテーション $a

ダブルクォーテーションで囲った方は変数 $a に入っている値を表示していますが、
シングルクォーテーションで囲ったほうは変数名 $a がそのまま表示されています。
これは変数の内容を展開して表示するか、展開せずそのまま文字列として扱うか
の違いです。


このダブルクォーテーションとシングルクォーテーションの違いは、ページを書き出す print <<"HTML";
ついても同じ事で、今の表示はダブルクォーテーションで囲ってあるので、ページ内で展開された変数の値
が表示されていますが、 print <<'HTML'; とすると、何も展開は行われません。

文字列の連結を行う

文字列同士を連結してみます。

文字列の連結は、 . を使って行い、文字列同士だけでなく、変数の値とも連結できます。
$a には 太郎  花子 が連結されたものが
$b には $a に入っている値に です を連結したものが入ります。
実行結果
太郎と花子
太郎と花子です



文字列はそれぞれ "" もしくは '' で囲って下さい。


変数の内容を結合したい場合、ダブルクォーテーションで囲って並べても結構です。
また、HTML内で変数を続けて書いても連結して表示されます。

実行結果
太郎と花子です
太郎と花子です。


文字列の比較を行う

文字列が等しいか等しくないか、大きいか小さいかなどの比較が行えます。




実行結果
$a は太郎です。
$b は太郎ではありません。



$a eq 太郎
左辺 文字列比較演算子 右辺

文字列比較演算子 (文字列の比較)
eq 右辺と左辺の文字列が等しければ
ne 右辺と左辺の文字列が等しくなければ
lt 左辺が右辺より小さければ
gt 左辺が右辺より大きければ
le 左辺が右辺より小さいか等しければ
ge 左辺が右辺より大きいか等しければ



文字列の大きい、小さいとは ASCII コードと呼ばれる文字コードの登録順により決定されます。
例えばアルファベットの場合 a b c d ・・・ という順番ですので、 a は b より小さい、 b は c より小さい事になります。
左辺、右辺共に変数でも構わず、それぞれの変数に入っている値を文字列として比較します。


次項ではループ (繰り返し処理) についての説明を行っています。
ループは間違えた書き方をすると 無限ループといって、永遠に終わらない状態となり、
サーバに異常な負荷を与えてしまう原因となりますので、注意して書きましょう。



Beginner's CGI  - Copyright (C) 2003 aimix. All Rights Reserved -