Perl/php風データ取得スクリプト
提供: 初心者エンジニアの簡易メモ
2015年5月20日 (水) 02:59時点における127.0.0.1 (トーク)による版 (ページの作成:「 #!/usr/bin/perl # php風データ取得スクリプト # require './indata.cgi'; print "content-type: text/html\n\n"; require './jcode.pl'; &jcode'convert...」)
#!/usr/bin/perl # php風データ取得スクリプト # require './indata.cgi'; print "content-type: text/html\n\n"; require './jcode.pl'; &jcode'convert( *value, 'sjis' ); # POST用 if ($ENV{'REQUEST_METHOD'} eq "POST") { my $_POST_STR; read( STDIN, $_POST_STR, $ENV{'CONTENT_LENGTH'} ); $_POST_STR =~ tr/+/ /; $_POST_STR =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack('C', hex($1) )/ge; %_POST = ¶m_to_hash($_POST_STR); } # GET用 if ($ENV{'QUERY_STRING'}) { my $_GET_STR = $ENV{'QUERY_STRING'}; $_GET_STR =~ tr/+/ /; $_GET_STR =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack('C', hex($1) )/ge; %_GET = ¶m_to_hash($_GET_STR); } # REQUEST用 %_REQUEST = %_GET; foreach (keys %_POST) { $_REQUEST{$_} = $_POST{$_}; } # パラメータ文字列からハッシュへ sub param_to_hash { my ($str) = @_; my %hash; my (@arr) = split(/&/, $str); foreach (@arr) { my ($key, @value) = split(/=/, $_); if ($#value >= 1) { $hash{$key} = join("=", @value); } else { $hash{$key} = $value[0]; } } return %hash; } 1;