« クエリー(引数)を受け取る::CGI.pm使用 | メイン | インチ ⇔ ピクセル変換 »

カテゴリー:クエリー(引数) 

クエリー(引数)を受け取る::自作コードのみ

このエントリーを含むはてなブックマーク  livedoorクリップ  クエリー(引数)を受け取る::自作コードのみをdel.icio.usに追加  クエリー(引数)を受け取る::自作コードのみをYahoo!ブックマークに追加  クエリー(引数)を受け取る::自作コードのみをニフティクリップに追加

CGIモジュールは非常に巨大なため、引数を受け取るときには軽量・コンパクトなプログラムを書きたい場合がある。
#--------------------------------------------------# # クエリーをデコードし取得 # #--------------------------------------------------# util::getQuery(\%form); package util; #-------------------------------------------------# #■クエリーを取得する # 内容:GET/POST判定をしクエリーを取得する。 # URLデコード後、指定のハッシュへ格納する。 # # 引数:(1)格納先ハッシュ:リファレンス # 戻り値:なし #-------------------------------------------------# sub getQuery{ my $form = shift; #クエリーをセットするハッシュ(リファレンス) my $buff; my @pairs; my $pair; #-- クエリー文字列取得 --# if ($ENV{'REQUEST_METHOD'} eq "POST"){ read(STDIN, $buff, $ENV{'CONTENT_LENGTH'}); } else{ $buff = $ENV{'QUERY_STRING'}; } #-- name=valueの組み合わせに分ける --# @pairs = split(/&/, $buff); # $buffは # name1=value1&name2=value2& ... &nameN=valueN # となっているハズ #-- デコードしつつハッシュにセット --# foreach $pair ( @pairs ){ my( $name, $value ) = split(/=/, $pair); #$pairは name=value となっているハズ #-- URLデコード --# $value =~ tr/+/ /; #“+”を空白に $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; # %XX を本来の文字コードに #-- ハッシュにセットする --# if( exists( $form->{$name} ) ) { $form->{$name} .= "," . $value; #同名の場合は','で連結する } else{ $form->{$name} = $value; } } }



トラックバック

このエントリーのトラックバックURL:
http://katsubemakito.net/mt/mt-tb.cgi/208

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

VPSレンタルサーバー




クリエイティブ・コモンズ・ライセンス
このブログは、次のライセンスで保護されています。 クリエイティブ・コモンズ・ライセンス.