• 締切済み

CGIの変数に配列を代入する方法

下記のような記述をG1~G799まで書かなくてもいい方法をお教えください。 よろしくお願いいたします。 ($a,$b,$c,$G1,$G2,$G3,・・・$G799,) = split(/<>/,$P);

みんなの回答

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.1

えーとCGIは言語じゃないので(いろんな言語で書ける)、見た感じで Perlということで判断します。 > ($a,$b,$c,$G1,$G2,$G3,・・・$G799,) = split(/<>/,$P); ($a, $b, $c, @G) = split /<>/, $P; のように配列使って受けるのに何か不都合でもあるのでしょうか?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 配列変数へまとめるには?

    $a = ',,,,,,1,1'; $b = ',,,1,,1,,'; $c = ',1,,1,,,,'; push(@A,split(/\,/,$a)); push(@B,split(/\,/,$b)); push(@C,split(/\,/,$c)); @Dにまとめるにはどうしたらよいでしょうか? @Dの中身→ ,1,1,1,,1,1,1 よろしくお願いします。

    • ベストアンサー
    • Perl
  • CGIの変数に配列を代入する方法

    $a = "$FORM{'b'}<>$FORM{'c'}<>$FORM{'d'}<>$FORM{'aaa1'}<>$FORM{'aaa2'}<>$FORM{'aaa3'}<> ----------------$FORM{'aaa600'}<>"; の$FORM{'aaa1'}<>から$FORM{'aaa600'}<>までをすべて書かなくていい方法はありますでしょうか? お手数ですが、お教えください。

    • ベストアンサー
    • CGI
  • 配列変数のクリアについて

    $line[0]='a,1,2,3,4,5'; $line[1]='b,1,2,3,4,5'; $line[2]='c,1,2,3,4,5'; $line[3]='d,1,2,3,4,5'; $line[4]='e,1,2,3,4,5'; $line[5]='f,1,2,3,4,5'; for($i=0;$i<=$#line;$i++){ ($a,$b,$c,$d,$e,$f)=split(/\,/,$line[$i]); push(@str,$a); } for($i=0;$i<=$#str;$i++){ print '$str',"[$i] = ","$str[$i]\n"; } print "\n\n"; @str=""; for($i=0;$i<=$#line;$i++){ ($a,$b,$c,$d,$e,$f)=split(/\,/,$line[$i]); push(@str,$a); } for($i=0;$i<=$#str;$i++){ print '$str',"[$i] = ","$str[$i]\n"; } __END__ 実行結果 $str[0] = a $str[1] = b $str[2] = c $str[3] = d $str[4] = e $str[5] = f $str[0] = $str[1] = a $str[2] = b $str[3] = c $str[4] = d $str[5] = e $str[6] = f 二回目は$str[0]から入らないのですね。 @str=""; にその様にさせる意味があったのでしょうか? pushなので、変数(@str)をクリアして使おうとしたら、こんな事になっていました。

    • ベストアンサー
    • Perl
  • 配列をファイルに保存する方法、取り出す方法を教えてください

    (1)配列をファイルに保存する方法 (2)保存した配列をファイルから出す方法 がよく分かりません。教えていただけないでしょうか。恐れ入りますがよろしくお願いいたします。 (1) $a = "あ"; $b = "い"; $c = "う"; を(@hairetuに入れて?)ファイルに保存する方法。(ファイルにすでに保存済のデータがあった場合には、消去したいと考えております。) (2) ファイルを開き、保存されている(@hairetuを取り出し?$a 、$b 、$cに切り分け?)$a 、$b 、$c を再び"あ""い""う""として用いることができるようにする方法 ちなみに、以下のように記述してみたのですが、上手く動作しませんでした。 #####################(1)配列をファイルに保存################# #!/usr/bin/perl $file = "file.dat"; $a = "あ"; $b = "い"; $c = "う"; $d = "え"; ### $a="あ" $b="い" $c="う" を@hairetuに入れたつもりです。 @hensu = ('$a','$b','$c','$d'); ### @hairetuをファイルに保存したつもりです。 open(FILE, "+<$file"); print FILE @hensu; close(FILE); ##############(2)保存した配列をファイルから出す############### ### ファイルを開き、保存されている@hairetuを取り出したつもりです。 open(FILE, "+<$file"); @hensu = <FILE>; ### @hairetuを再び$a $b $cに切り分けようとしているのですが、これでよろしいでしょうか。 foreach $line (@hensu){ ($a,$b,$c,$d) =split(/\,/,$line); } close(FILE); ### 確認のため表示 print $a; print $b; print $c; print $d; ### これを実行すると、「あいうえ」でなく「$a$b$c$d」と表示されてしまいます。何処が間違っているのか教えていただけると幸いです。

    • ベストアンサー
    • CGI
  • 配列変数

    初歩的な質問で申し訳ありませんが、 下記のような3つの配列変数があります。  $a $b $c [0]01 あ メールアドレス1 [1]01 い メールアドレス1 [2]01 う メールアドレス1 [3]02 ア メールアドレス2 [4]03 阿 メールアドレス3 [5]03 伊 メールアドレス3 [6]03 宇 メールアドレス3 [7]03 江 メールアドレス3 $aは会員コード、$bは文字列、$cは会員のメールアドレス という内容で、それぞれ[0]~[7]まで8つの要素を持って いて、事前に会員コードでソートされた状態で格納され ています。 このような条件で$bの文字列を会員コード毎に結合して対 象メールアドレスにメール送信したいのですが、どのよう な方法がありますでしょうか? よろしくお願い致します。

    • ベストアンサー
    • Perl
  • cgiでの並べ替えについて

    フォームを使用して書き込みされたログファイルを並べ替えしているんですが、意図しない動きをするんです。 ログデータは以下のような感じです。 a=***&b=***&c=***&d=***&e=*** #-----並べ替えを行う open (FILE2,"<naisen.log"); flock(FILE2,2); @log2 = <FILE2>; flock(FILES,8); close FILES; @sort2 = sort {(split(/[&=]/,$a))[7] <=> (split(/[&=]/,$b))[7];} @log2; @sort3 = sort{(split(/[&=]/,$a))[5] cmp (split(/[&=]/,$b))[5];}@sort2; open (FILE2,">naisen.log"); flock (FILE,2); @filew = @sort3; print FILE2 @filew; close(FILE2); a=***&b=***&c=***&d=120 a=***&b=***&c=***&d=111 というデータがあった場合、意図している動きは a=***&b=***&c=***&d=111 a=***&b=***&c=***&d=120 という順番に並べ替えられるものですが、 a=***&b=***&c=***&d=120 a=***&b=***&c=***&d=111 です。 なぜ111の方が下にきてしまっているのでしょうか? また全部ではなく一部だけに並べ替えが適用されないのはナゼでしょうか?

    • ベストアンサー
    • CGI
  • 配列への分割方法

    XML初心者です。 Perlでいう以下の処理を行いたいのですが、XMLではどのような記述になりますでしょうか。 $hoge_a = "h o g e"; @hoge = split(/ /,$hoge_a); ↓ $hoge[0] = h $hoge[1] = o $hoge[2] = g $hoge[3] = e 自分なりに調べたのですが、XMLでは配列という概念が見つかりませんでした。 よろしくお願いします。

    • ベストアンサー
    • XML
  • 多次元配列の初期化

    多次元配列の初期化を行いたいのですが、 下記の方法では、配列の値が多くなったときに大変 なので他に良い方法はありませんでしょうか? char lesson[7][6] = { {'A', 'B', 'C', 'D', 'E', 'F'}, {'G', 'H', 'I', 'J', 'K', 'L'}, {'M', 'N', 'O', 'P', 'Q', 'R'}, {'S', 'T', 'U', 'V', 'W', 'X'}, {'Y', 'Z', 'a', 'b', 'c', 'd'}, {'e', 'f', 'g', 'h', 'i', 'j'}, {'k', 'l', 'm', 'n', 'o', 'p'}, };

  • 変数の中の文字列から””を取り除く方法

    javascriptに関する質問です。 タイトル通りですが、 変数の中の文字列からダブルクォーテーションを取り除く方法はありますか? 以下は私がやりたいことの例です。 var a = "hello", b = "hi"; var greet = "a, b"; var c = greet.split(","); この結果は c = ["a", "b"] こうですが ここからダブルクォーテーションを除去して、 c = [a, b] と変数名にすることは可能ですか? 可能でしたらどのような方法があるでしょうか?

  • 多次元配列のスマートな書き方

    $key文字列の:区切りで階層化した多次元配列に$valを代入するのですが 階層が深くなるにつれてcaseの記述も増えるため、ほとんど無限?に深くても 代入できるように(イ)の部分を変えたいのですが、スマートに記述する方法はありますか? <?php $key = "A:B:C"; ////$key = "A:B:C:D:E:F:G"; // この場合はcase 7まで書かなければならない? $val = "test"; $soe = split(":", $key); // -------------------------- イ switch (count($soe)) { case 1: $atr[$soe[0]] = $val; break; case 2: $atr[$soe[0]][$soe[1]] = $val; break; case 3: $atr[$soe[0]][$soe[1]][$soe[2]] = $val; break; default: print "ERR!"; exit; } // -------------------------- イ print_r($atr); exit; ?>

    • 締切済み
    • PHP