SAK 図書館
CGI-Perl 基礎実地編 - 実習9 (文字関数、数値関数)
■test09.cgi ------ ↓ ここから ↓ ------ #!/usr/local/bin/perl #//準備 *data = GetPara(); $a = $data{'a'}; $b = $data{'b'}; #//文字列結合 $c = $a . $b; #//小文字変換 $d = lc($a); #//大文字変換 $e = uc($a); #//文字列切り出し $f = substr($a, 1, 2); #//文字列バイト長 $g = length($a); #//文字列検索 $h = index($a, 'abc'); #//書式フォーマット $i = sprintf('書式フォーマット = %08d', $a); #//空白削除 $j = $a; $j =~ s/ //g; #//文字置き換え $k = $a; $k =~ s/a/b/g; #//文字列分割 @l = split(/\,/, $a); #//乱数発生 srand(time ^ ($$ + ($$ << 15))); $m = int(rand(100)); #//整数化 $n = int($a); #//環境変数 $ip = $ENV{'REMOTE_ADDR'}; #// リモート端末の IP アドレス $url = $ENV{'HTTP_REFERER'}; #// リモート端末の直前の URL $blws = $ENV{'HTTP_USER_AGENT'}; #// ブラウザ情報 $path = $ENV{'PATH_INFO'}; #// 現 CGI のパス情報 #//HTML 出力 print "Content-type: text/html\n\n"; print "<HTML>\n"; print "<P>文字関数、数値関数テスト</P>\n"; print "<P>パラメタ a = $a<BR>"; print "パラメタ b = $b</P>\n"; print "<P>"; print "文字列結合 = $c<BR>"; print "小文字変換 = $d<BR>"; print "大文字変換 = $e<BR>"; print "文字列切り出し = $f<BR>"; print "文字列バイト長 = $g<BR>"; print "文字列 abc 検索 = $h<BR>"; print "$i<BR>"; print "空白削除 = $j<BR>"; print "文字置き換え a → b = $k<BR>"; print "文字列分割 「,」 = "; foreach (@l) { print "$_<BR>"; } print "乱数発生 0 〜 99 = $m<BR>"; print "整数化 = $n<BR>"; print "リモート端末の IP アドレス = $ip<BR>"; print "リモート端末の直前の URL = $url<BR>"; print "ブラウザ情報 = $blws<BR>"; print "現 CGI のパス情報 = $path<BR>"; print "</P>\n"; print "</HTML>\n"; #// 終了 exit(0); #//===================================================================== #// パラメタ取得 #//===================================================================== sub GetPara { my($encode) = @_; my($method) = $ENV{'REQUEST_METHOD'}; local($qu, @in, $key, $val); #// 日本語コード変換 jcode.pl 読み込み require 'jcode.pl' if $encode; #// パラメタ取得 if ($method eq 'GET') { $qu = $ENV{'QUERY_STRING'}; } elsif ($method eq 'POST') { read(STDIN, $qu, $ENV{'CONTENT_LENGTH'}); } local(@qu) = split(/&/, $qu); foreach (@qu) { tr/+/ /; ($key, $val) = split(/=/); $key =~ s/%([A-Fa-f0-9][A-Fa-f0-9])/pack('c', hex($1))/ge; $val =~ s/%([A-Fa-f0-9][A-Fa-f0-9])/pack('c', hex($1))/ge; $val =~ s/\r\n/\n/g; jcode'convert(*key, $encode) if ($encode); jcode'convert(*val, $encode) if ($encode); $in{$key} = $val; } #// 戻り値セット return *in; } ------ ↑ ここまで ↑ ------ ■解説 ・この test09.cgi は、test08.htm と対になっています。 test08.htm を呼び出して、パラメタ a に何か入力して実行ボタンを 押します。 そうすると各関数の処理結果が test09.cgi によって表示されます。 ・関数詳細は、SAK 開発言語資料の 2001.01.25 CGI-Perl 基礎編 (その五) 文字列関数 substr、index、split、localtime、crypt 2001.01.25 CGI-Perl 基礎編 (その六) 数値関数、その他 srand、rand、int、sleep、$ENV で確認して下さい。 ■補足 ・もっと他にも組み込み関数がたくさんありますが、基本はこんなところかと 思います。今のところ私はこれで困りません。 ■実地 ・test09.cgi も実際に作成してテストしてみましょう。 いろいろと入力値を変えてみたり、cgi を修正して試してみると良いです。 ■CGI-Perl 基礎実地編資料
■CGI-Perl 基礎編資料
■CGI-Perl 応用実地編資料
■PHP 基礎編資料
■PHP + MySQL 編資料