?name=%94%E9%89%D8の表示

このQ&Aのポイント
  • $stock配列のキーと値を表示したい
  • PHPのコードを使用しています
  • ?name=%94%E9%89%D8を日本語で表示したい
回答を見る
  • ベストアンサー

?name=%94%E9%89%D8の表示

$stock = array ( "./cgi-bin/photobbal25.cgi?name=%94%E9%89%D8"=>"143時間:43分:05秒", "./cgi-bin/photobbal25.cgi?name=naomi"=>"143時間:43分:05秒", "./cgi-bin/photobbal25.cgi?name=%82%D0%82%EB%82%DD"=>"117時間:31分:29秒") foreach($stock as $key => $value) { print "$key\n;" print "{$value}\n"       print "      \n" //ここに表示したい } 上記はPHPのコードです ?name=%94%E9%89%D8の %94%E9%89%D8を日本語で表示したい よろしくお願いします。

  • PHP
  • 回答数2
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

今回のケースであればこんな感じ、name以外にパラメータが続く可能性があるなら もうすこし工夫が必要 <?PHP $stock = array ( "./cgi-bin/photobbal25.cgi?name=%94%E9%89%D8"=>"143時間:43分:05秒", "./cgi-bin/photobbal25.cgi?name=naomi"=>"143時間:43分:05秒", "./cgi-bin/photobbal25.cgi?name=%82%D0%82%EB%82%DD"=>"117時間:31分:29秒"); $pattern="/(?<=name=).*$/"; foreach($stock as $key => $value) { print $key."<br>\n"; print $value."<br>\n"; if(preg_match($pattern,$key,$match)){ print urldecode($match[0])."<br>\n"; } } ?>

hana3090
質問者

お礼

早い回答ありがとうございます、 if(preg_match($pattern,$key,$match)){ $name = urldecode($match[0]); 上記のコードで出来ました 又、宜しくお願いします。

その他の回答 (1)

noname#244856
noname#244856
回答No.2

print "$key\n"; ↓ print urldecode("$key\n");

関連するQ&A

  • CGIでフォームからの入力内容を表示されない。

    初歩的な質問ですみません。 自宅サーバを使っています。 ■ActivePerl 5.8.8 Build 822 ■httpd142p ------------------------------ ■httpd142p ┗■cgi-bin  ┣■cgi-lib.pl  ┣■test.cgi  ┗■test.html ------------------------------- CGIは動作します。 一行目のパスもあっています。 --------------------------- 【test.cgi】 #!C:/perl/bin/perl #require './cgi-lib.pl'; #&ReadParse(*MYDATA) print "Content-type: text/html\n\n"; print "<HTML>\n"; print "<TITLE>RESULT</TITLE>\n"; print "<BODY>\n"; print "氏名 = $MYDATA{'simei'}\n\n"; print "住所 = $MYDATA{'jyusyo'}\n"; print "</BODY>\n"; print "</HTML>\n"; exit; -------------------------------- 【test.html】 <HTML> <HEAD> <TITLE>TEST</TITLE> </HEAD> <BODY> <P> <FORM ACTION="test.cgi" METHOD="POST"> 氏名:<INPUT TYPE="text" NAME="simei"> 住所:<INPUT TYPE="text" NAME="jyusyo"> <INPUT TYPE="submit" VALUE="送信"> <INPUT TYPE="reset" VALUE="リセット"> </P> </FORM> </BODY> </HTML> ---------------------------------- ■実行結果 氏名 = 住所 = ---------------------------------- どなたかご教授ください。

    • ベストアンサー
    • CGI
  • select表示について

    先程selectにて計算表示をご相談させて頂きました。 その方法を回避した方が良かったので回避した方法で進めています 改めてご相談させて頂きます。 HTML側のセレクトで PHPにある「4つの計算の配列の答えを1つだけ選んで表示する」 方法を考えています HTML側の状況です <HTML> <HEAD> </HEAD> <BODY> <form action="http://localhost/test/**/**.php" method="post"> <select name="e" size=1> <option value = "{$stock["a"]}">1</option> <option value = "{$stock["b"]}">2</option> <option value = "{$stock["c"]}">3</option> <option value = "{$stock["d"]}">4</option> </select> <input type = "submit" value = "送信"> <input type = "reset" value = "クリア"> </BODY> </HTML> PHP側の状況です <?php //計算データー $num1 = 2; $num2 = 3; $num3 = 4; $num4 = $num1*$num2; $num5 = $num2+$num3; $num6 = $num3+$num2-$num1; //ストックデーター $stock["a"] = $num3; $stock["b"] = $num4; $stock["c"] = $num5; $stock["d"] = $num6; //上のストックデータをhtml側からセレクトで行うのが下の$eです $e = $_POST["e"]; ?> <table border="2"> <tr bgcolor="#AAAAAA"> <th>在庫状況</th> </tr> <?php print "<tr><td>結果は{$stock["a"]}です。</td></tr>\n"; print "<tr><td>結果は{$stock["b"]}です。</td></tr>\n"; print "<tr><td>結果は{$stock["c"]}です。</td></tr>\n"; print "<tr><td>結果は{$stock["d"]}です。</td></tr>\n"; //上記は計算表示OK 下記のセレクトの結果が文字のみ表示で選択表示はされず print "<tr><td>セレクトの結果 {$_POST["e"]}です。</td></tr><br/>\n"; ?> 計算表示は出て来るのですが、肝心なpost"e"のselectの指示と表示方法の根本が分かっていない為、selectだけが全く反映されてません。 ストックデーターの上下に何かの指示が絶対に必要だと思いますが これ以上は答えが出せない状況です 超初心者で分からない者で大変申し訳ございませんがどなたか再びご教示願います。

    • 締切済み
    • PHP
  • FORM ACTION~POST使用時について

    こんにちは。お世話になります。 cgiファイルから、FORM ACTION~POST⇒submitで自分自身を呼び出す時に、INPUT TYPE=\"text\"を11個間に入れると呼び出せません。 (10個の場合はうまくいきます) FORM ACTION~POSTは文字数制限がないと、本を見てもかいてあるのですが、なにか理由があるのでしょうか。 ご存知の方、ご教授願えたら幸いです。 よろしくお願いいたします。 抜粋したソースを下記に記します。 ------------------------------------------------------------- #障害対応情報項目テキストボックス print "<H5>【障害対応情報項目】</H5>\n"; print "<FORM ACTION=\"../cgi-bin/serch_e-001.cgi\" METHOD=\"POST\">\n"; print "<INPUT TYPE=\"text\" NAME=\"S1-2\" VALUE=\"$$selectdata[0][7]\" SIZE=30>\n"; print "<INPUT TYPE=\"text\" NAME=\"S1-3\" VALUE=\"$$selectdata[0][8]\" SIZE=30>\n"; print "<INPUT TYPE=\"text\" NAME=\"S1-4\" VALUE=\"$$selectdata[0][9]\" SIZE=30>\n"; print "<INPUT TYPE=\"text\" NAME=\"S1-5\" VALUE=\"$$selectdata[0][10]\" SIZE=30>\n"; print "<INPUT TYPE=\"text\" NAME=\"S1-6\" VALUE=\"$$selectdata[0][11]\" SIZE=30>\n"; print "<INPUT TYPE=\"text\" NAME=\"S1-7\" VALUE=\"$$selectdata[0][12]\" SIZE=30>\n"; print "<INPUT TYPE=\"text\" NAME=\"S1-8\" VALUE=\"$$selectdata[0][13]\" SIZE=30>\n"; print "<INPUT TYPE=\"text\" NAME=\"S1-9\" VALUE=\"$$selectdata[0][13]\" SIZE=30>\n"; print "<INPUT TYPE=\"text\" NAME=\"S1-13\" VALUE=\"$$selectdata[0][18]\" SIZE=30>\n"; print "<INPUT TYPE=\"text\" NAME=\"S1-14\" VALUE=\"$$selectdata[0][19]\" SIZE=30>\n"; print "<INPUT TYPE=\"text\" NAME=\"S1-15\" VALUE=\"$$selectdata[0][19]\" SIZE=30>\n"; print "<INPUT TYPE=\"submit\" NAME=\"button\" VALUE=\"新規検索\">\n"; print "<INPUT TYPE=\"submit\" NAME=\"button\" VALUE=\"更新\">\n"; print "<INPUT TYPE=\"hidden\" NAME=\"no\" VALUE=\"$$selectdata[0][0]\">\n"; print "</FORM>\n"; ------------------------------------------------------------

    • ベストアンサー
    • Perl
  • CGIプログラムでのボタン表示のさせかた

    print "<form action=\"$script\" method=\"POST\" target=\"_blank\">\n"; print "<input type=hidden name=mode value=note>\n"; print "<input type=hidden name=job value=blank>\n"; print "<input type=submit value="説明表'>"</form>\n"; print "<form action=\"$home\" method=\"POST\" target=\"_blank\">\n"; print "<input type=hidden name=mode value=_top>\n"; print "<input type=hidden name=job value=blank>\n"; print "<input type=submit value='トップ'></form>\n"; というCGIプログラムの文章があるのですが、 上記の記述で実行すると、 「説明表」ボタンと、「トップ」ボタンが縦に並んで表示されてしまいます。 これを、横に表示させるようにするには、 どのように変更すばいいのでしょうか? 参考になるかわかりませんが、「説明表」をクリックして表示される文章は、 他のCGIプログラムの中に記述されています。

    • ベストアンサー
    • CGI
  • 文字化け

    下記のようなcgiスクリプトがあり、test1.cgi から リンクの test2.cgiを呼ぶと 「リンドウ」が文字化けしてしまいます。 文字化けしないようにするには、どうしたらいいでしょうか。 Perl cgi 初心者です。 --------test1.cgi----------------------------------------- #!/usr/bin/perl print "Content-Type: text/html; charset=EUC-JP\n\n"; $name="リンドウ"; print "name=$name<br>"; print "<a href=\"test2.cgi?aaa,${name},bbb\">test2.cgi</a>\n"; ---------test2.cgi------------------------------------------------- #!/usr/bin/perl print "Content-type: text/html; charset=EUC_JP\n\n"; $query = $ENV{'QUERY_STRING'}; print "query=$query\n";

    • ベストアンサー
    • CGI
  • クッキー書き込みが正常に行われない?

    http://oshiete1.goo.ne.jp/kotaeru.php3?q=394703 を質問していたものです。 1.フォームで名前を入力 2.1の情報をクッキーに書き込み ということをやりたいのです。 (応用いたしますが、基本はこれです。) 1つ目のcgiで、フォームで名前を入力。 -----1.cgi-------------------- #!/usr/local/bin/perl print "Content-type:text/html\n\n"; print "<form method=post action=2.cgi>\n"; print "<input type=text name=name></input><BR>\n"; print "<input type=submit value=ok></input><BR>\n"; print "</form>\n"; exit; ------------------------------ 1.cgiの名前のデータを呼び込もうとしてもエラーになる。 -----2.cgi-------------------- #!/usr/local/bin/perl read(STDIN,$atai,$ENV{'content_length'}); ($key, $value) = split(/=/, $atai); $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; print &setCookie("name",$value); print "Content-type:text/html\n\n"; print "名前:<FONT COLOR=RED>",$value,"</FONT>と送信されました。<br>\n"; #Cookie書き込み。 sub setCookie{ local($tmp,$val); $val = $_[1]; $val =~ s/(\W)/sprintg("%%%02X",unpack("C",$1))/eg; $tmp="Set-Cookie: "; $tmp .="$_[0]=$val; "; $tmp .="expires=Thu, 1-Jan-2030 00:00:00 GMT;\n"; return($tmp); } ------------------------------ クッキー書き込みをしないで実行すると、きちんと名前が表示されます。 どこをなおせばきちんとクッキーにセットされるのでしょうか? 何度も申し訳ありませんがよろしくお願いします。

    • ベストアンサー
    • CGI
  • Tomcat で CGI の実行結果が表示されません

    Tomcat 6.0.24 を使って、perl または python で記述された cgi を実行したいのですが 実行されているのかされていないのか?がよくわからない状態で困っています。 ※環境は Windows XP Pro SP3 上です。 具体的には、cgi 側で単純な HTML を print し、その結果をブラウザで確認したいだけなのですが その print 結果が何も出力されません。 (ブラウザでアクセスすると、特にエラーは出ず、真っ白な画面) ◆試している cgi ソース(Perl) -------------------------------------------- test.cgi -------------------------------------------- #! c:/perl/bin/perl print "Content-Type: text/html\n\n" print "<html><body>Hello, World</body></html>" -------------------------------------------- ◆この test.cgi を配置している場所  インストールディレクトリ/webapps/ROOT/WEB-INF/cgi/test.cgi ◆ブラウザでアクセスしている場所  http://localhost:8080/cgi-bin/test.cgi ◆検証用 HTML の配置  インストールディレクトリ/webapps/ROOT/WEB-INF/cgi/test.html  →普通の HTML を確認のために配置。しかし、同様のアクセスで表示できず(画面真っ白) ちなみに、Tomcat インストール後にやったことは以下です。  1.インストールディレクトリ/conf/context.xml の 以下の部分に    「privileged="true"」という記述を追加    <Context>     /*中略*/    </Context>    ↓    <Context privileged="true">     /*中略*/    </Context>     2.インストールディレクトリ/conf/web.xml の以下の部分のコメント化を解除    <servlet>     <servlet-name>cgi</servlet-name>    /*中略*/    </servlet>    <servlet-mapping>     <servlet-name>cgi</servlet-name>     <url-pattern>/cgi-bin/*</url-pattern>    </servlet-mapping>  3.上の1、2では perl を実行してくれないので、    インストールディレクトリ/conf/web.xml に以下を追加    <init-param>     <param-name>executable</param-name>     <param-value>C:\Perl\bin\perl.exe</param-value>    </init-param>     ↓結果的に    <servlet>     <servlet-name>cgi</servlet-name>    /*中略*/     <init-param>      <param-name>executable</param-name>      <param-value>C:\Perl\bin\perl.exe</param-value>     </init-param>    </servlet> 以上ですが、何かヒントになるようなことでもよいので、識者の方、アドバイスをお願いいたします。

    • 締切済み
    • CGI
  • Perlがサーバー上でうごきません

    htmlファイルには <html> <form action="form2.cgi" method="get"> 食品名1<input type="text"name="form1"> <br> 食品名2<input type="text"name="form2"> <input type="submit"value="送信"> </form> </html> cgiファイルには #! /usr/bin/perl require "cgi-lib.pl"; &ReadParse(); print "Content-type:text/html\n"; print "\n"; print "<html>\n"; print "<head>\n"; print "<title>フォーム</title>\n"; print "</head>\n"; print "<body>\n"; print "おいしい$in{'form1'}\n; print "まずい$in{'form2'}\n; print "</body>\n"; print "</html>\n"; exit; cgi-lib.plはサーバーにいれております。 どうしてうごかないのでしょうか。

    • ベストアンサー
    • Perl
  • perl で環境変数を表示できない

    perlの初心者です。下記のCGIを実行しましたが、全く表示しません。 最初の「環境変数」と言う文字も表示しません。 どこか初歩的なエラーがあると思いますが、わかりませんので質問させていただきます。 --- #!/usr/local/bin/perl print "Content-type: text/html", "\n\n"; print "<HTML><BODY>", "\n"; print "<H1>環境変数</H1><HR>", "\n"; foreach my $key( keys %ENV ){ print "$key: $ENV{$key}<BR>", "\n"; } print "<HR>", "\n"; print "</BODY></HTML>", "\n";

    • ベストアンサー
    • Perl
  • perlがうごきません

    htmlファイルには <html> <form action="form2.cgi" method="get"> 食品名1<input type="text"name="form1"> <br> 食品名2<input type="text"name="form2"> <input type="submit"value="送信"> </form> </html> cgiファイルには #! /usr/bin/perl require "cgi-lib.pl"; &ReadParse(); print "Content-type:text/html\n"; print "\n"; print "<html>\n"; print "<head>\n"; print "<title>フォーム</title>\n"; print "</head>\n"; print "<body>\n"; print "おいしい$in{'form1'}\n"; print "まずい$in{'form2'}\n"; print "</body>\n"; print "</html>\n"; exit; cgi-lib.plはサーバーにいれております。 どうしてうごかないのでしょうか。 perlの場所も正確です。

    • ベストアンサー
    • Perl

専門家に質問してみよう