• ベストアンサー

「test.php?」の後のデータの読み方

初歩的な質問で申し訳ありません。 例えば、「data」というデータを送りたい場合、 ( U.R.L. )/test.php?i=data $_GET[i] でデータを受け取る事はできます。 そこで ( U.R.L. )/test.php?data という場合、どういうコマンドでデータを 読む事ができるのでしょうか? 下記のプログラムを実行すると while(list($key,$val) = each ($_GET) ) {print("$key = $val <br>\n");} data = と表示され、これを利用すると データを読む事は出来ますが、 もう少し簡単な方法はあるでしょうか?

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

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

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

「data」というスタティックなデータあるかどうかを知りたいだけなら isset($_GET["data"]) で得られます。 なんかわかんないけどデータがつくのでそのキーを受けたいなら $keys=array_keys($_GET); print $keys[0]; というようなやり方が妥当かと。

visitor777
質問者

お礼

有難うございます。 これで簡単にデータを読み出す事が出来ました。

その他の回答 (1)

  • tany180sx
  • ベストアンサー率63% (239/379)
回答No.1

環境変数の QUERY_STRING かなんかで取れると思います。 もしくは test.php/data とすると PATH_INFO で取得できます。

visitor777
質問者

お礼

有難うございます。 まだ、確認していませんが、 また、ゆっくりとやってみたいと思います。

関連するQ&A

  • post と get

    postとgetの両方でデータ送信が行われる可能性がある場合(あるときはpost、あるときはget)に簡単に効率よくデータを変数に入れてやる方法ってありますか? 最初は$_REQUEST を使っていたのですが、これではクッキー情報も入ってしまったため、これはやめました。そこで今は下のような方法を考えています。 if(postならば){ while(list ($key, $val) = each($_POST)) { $INPUT[$key] = $val; } } else {//getなら while(list ($key, $val) = each($_GET)) { $INPUT[$key] = $val; } } ただ、検索の仕方が下手なのか、受信した送信形式がPOSTかGETなのかということを知る方法がわかりません。 どなたかアドバイスを下さい。

    • ベストアンサー
    • PHP
  • arsort の key について

    こんにちは、Blackwinglsです。 ちょっと気になったので質問いたします。 以下のデータのポイント表があります。 データはSQLで order by name で取り出してます。 name point H氏 50p F氏 8p D氏 8p K氏 6p これを以下のscriptで出力すると <?php arsort($point); $count = 1; while(list($key,$val) = each($point)) { echo $key; echo ":"; echo $name[$key]; echo ":"; echo $val echo "<br>"; $count++; } ?> 3:H氏:50 2:F氏:8 1:D氏:8 4:K氏:6 と表示されますが、同じscriptを <?php arsort($point); $count = 1; while(list($key,$val) = each($point)) { echo $key; echo ":"; echo $name[$key]; echo ":"; echo $val echo "<br>"; $count++; } ?> <?php arsort($point); $count = 1; while(list($key,$val) = each($point)) { echo $key; echo ":"; echo $name[$key]; echo ":"; echo $val echo "<br>"; $count++; } ?> のように立て続けに書くと、 3:H氏:50 2:F氏:8 1:D氏:8 4:K氏:6 3:H氏:50 1:D氏:8 2:F氏:8 4:K氏:6 のように、同じ $point の場合、氏名が都度入れ替わるようです。 これって正常な動きなのでしょうか? order by name なので、氏名順に常に表示される気がするのですが・・・? 最近、php4からphp5に変更したら出たような気がするのですが、私の気のせい? どなたか情報お持ちの方、ご示唆くだされば幸いです。

    • ベストアンサー
    • PHP
  • 改行<br>を<br />に変える方法

    テキストエリアで改行した際に以下のコードですと改行は<br>になります。 これを<br />に変更したいのですが、自分なりに試してみたのですが全くうまくいきません。 sub decode { &ReadParse; while (($key,$val) = each %in) { if ($key !~ /upfile/ ) { &Jcode'convert(*val, "utf8", "", "z"); if ( $key !~ /label_name/ ) { $val =~ s/</&lt;/g; $val =~ s/>/&gt;/g; } $val =~ s/\r\n/<br>/g; $val =~ s/\r|\n/<br>/g; } $in{"$key"} = "$val"; } どなたか<br />に変更する記述を教えて頂けませんでしょうか?

    • 締切済み
    • CGI
  • csvのデータをphpで表示する方法を教えてください。

    csvの中の特定の文字をphpで検索する方法を教えてください。 僕がためしたのは以下です。 ------------------------------------------------------------- <? $PTR = fopen( "./test.csv", "r" ); if( $PTR == FALSE ){ die( "file open error!!" ); } $Key = $_GET["val"] ; $Size = strlen( $Key ); while($Str = fgets( $PTR, 1024 ) ) { $Code = substr( $Str, 0, $Size ); if( $Code === $Key ) { echo $Str; break; } if( $Key <= $Code ){ break; } } fclose( $PTR ); ?> ------------------------------------------------------------- ですが、これだと頭の文字がマッチしなとヒットしないんです。 たとへばcsvに以下が入ってるとします。 あきら いちご えなり この[あきら]をヒットしたい場合、getで渡す文字を[あきら]や[あ]ならヒットします。これを[き]や[ら]だけの文字検索でも[あきら]と表示されるようにしたいのです。 最悪php自体全部変えてもいいので、誰か教えてください。 条件として携帯電話からも検索できるものに限ります。 ※機種依存はX

    • 締切済み
    • PHP
  • テキストエリアの<br />を非表示にするには

    掲示板のようなCGIを利用し、入力フォームから送信された情報が保存されるプログラムを利用しています。 そのcgiファイルに記述されたコードに以下の記述があります。 sub decode { &ReadParse; while (($key,$val) = each %in) { if ($key !~ /upfile/ ) { &Jcode'convert(*val, "utf8", "", "z"); if ( $key !~ /label_name/ ) { $val =~ s/</&lt;/g; $val =~ s/>/&gt;/g; } $val =~ s/\r\n/<br>/g; $val =~ s/\r|\n/<br>/g; } $in{"$key"} = "$val"; } $_v = $in{"_v"}; $del_img = $in{"del_img"}; } この記述によりテキストエリアで改行された際に「<br>」に変換されると思うのですが、これを<br>から<br />に変えるため、 $val =~ s/\r\n/<br>/g; $val =~ s/\r|\n/<br>/g;を $val =~ s/\r\n/<br \/>/g; $val =~ s/\r|\n/<br \/>/g;と変えました。 これにより、保存される改行コードが<br>から<br />に変わったのですが、その情報を編集するため再度保存された情報の入力フォームを呼び出すと、 テキストエリアでは改行されず、改行場所に<br />と入力されてしまいます。 もとのコードではテキストエリア内の改行は<br>が表示されず、ちゃんと改行されていました。 そこで以下のように書き直してみたのですが、やはり状況は変わりません。 sub decode { &ReadParse; while (($key,$val) = each %in) { if ($key !~ /upfile/ ) { &Jcode'convert(*val, "utf8", "", "z"); if ( $key !~ /label_name/ ) { $val =~ s/</&lt;/g; $val =~ s/>/&gt;/g; $val =~ s/ / /g; } $val =~ s/\r\n/<br \/>/g; $val =~ s/\r|\n/<br \/>/g; } $in{"$key"} = "$val"; } $_v = $in{"_v"}; $del_img = $in{"del_img"}; } 改行コード<br>を<br />に変更し、保存された情報を呼び出してもテキストエリアで改行コード<br />は表示されることなく改行される記述方法を教えてください。 分かりにくい文章で申し訳ありませんがよろしくお願いします。

    • ベストアンサー
    • CGI
  • PHPでMySQLのMEDIUMBLOB型のデータを取り出す

    初めまして、宜しくお願いします。 現在ユーザ登録の管理をするデータベースを扱っています。 言語はPHP4と、MySQLを使用しています。 そのデータベースには、アイコン画像、登録者名、性別、 掲示板発言回数などのユーザー情報が保存されており、 データ型[MEDIUMBLOB]にまとめて保存されているようです。 (データベースは私が作成したものではいのですが) なのでそこから、それらの情報を取り出したいのですが、 [MEDIUMBLOB]型のデータの取り出し方が解らず困っています。 具体的にはデータだけならば取り出す事はできるものの、 バイナリ形式なので当然文字化けしているという感じです。 勉強不足ということは百も承知ですが、検索しても それらしい情報を見つけることもできず、ご存じの方が おられないかとこちらにて質問をさせていただきました。 お解りの方がおられましたらどうかアドバイスを 宜しくお願い致します。 -------------------------- // 以下のようなテーブルにデータが格納されていた場合 CREATE TABLE sample(   test_i INT,   test_s VARCHAR(64),   medium MEDIUMBLOB ); // 格納されているデータを取り出す $res = mysql_query( "SELECT test_i, medium FROM sample;" ); while( $list = mysql_fetch_assoc( $res ) ){   echo "$list['test_i']<br>";  //echo "$list['medium']<br>"; } 上記の通りをMEDIUMBLOB型ですると文字化けします。

    • ベストアンサー
    • PHP
  • PHPとMySQLで100万件のデータを登録

    PHPとMySQLで100万件のデータを登録する方法に困っております。 1.PHPで100万回ループして数字をランダムで取得し一意の数字を配列に格納。 ⇒データ量が多すぎてタイムアウトしてしまいます。いい方法はありますか? while($i<1000000){ $h = sprintf("%07d",mt_rand(1,1000000)); if(!array_search($h,$val)){      array_push($val,$h);      $i++; } } 2.またデータベースはMySQLを使用しようかと考えていますが、一気に登録する方法など効率のいいやり方はありますでしょうか?

    • ベストアンサー
    • PHP
  • 問題部分がJavascriptかPHPか分かりませんが....

    以下のようなHTMLを記述しました。 私の希望するべき動作は、"click"ボタンを押すたびに時間表記が切り替わると言うものです。 条件として、時間の取得はphp側で行う。 ページのリロード,リダイレクトなどは行わない main.HTML <head> <script type="text/javascript" id="test" src="./time1.php"></script> <script Language="JavaScript"><!-- cnt = 0; function click_key(){ if(cnt == 0){ test.src = "./time3.php"; cnt = 1; }else{ test.src = "./time1.php"; cnt = 0; } document.smp.set_val.value = get_time(); } // --></script> </head> <body> <form name=smp> <input type=text name=set_val value="" size=50><br> <input type=button value=click onclick="click_key()"> </form> </body> testX.php function get_time(){ value_time = "<? echo date("H:i:s"); ?>";   中略 return value_time; } test1.php test3.php にはそれぞれ上記のget_time()を含むコード記述がされています。 現状では、表示自体は切り替わりますがtest1.phpとtest3.phpが最初に読み込まれる時のみ動作するだけで、 以降は時間が更新されません。(テンポラリに残っていてそれが表示されている感じ?) これをリアルに動作できる方法はあるのでしょうか? それとも、こんな条件では実現不可能?

    • 締切済み
    • PHP
  • phpのwhileを使った文について

    phpについては初心者です。 <?php $i=0; $j=0; while($i<4){ while($j<4){ echo $i,$j,"<br>"; $j++; } $i++; } ?> この結果が 00 01 02 03 となりますが、 00 01 02 03 10 11 12 13 ... 32 33 のようにしたいです。 何が違うのでしょうか?ぜひとも教えてください。

    • ベストアンサー
    • PHP
  • PHP 多次元配列変数のデータ受け渡し。

    PHP 多次元配列変数のデータ受け渡し。 こんばんは。 先日からPHPでホームページを作成しています。 この度、二次元配列に代入した数値(文字列)を 二次元配列そのままで次のページに受け渡したいと考えています。 ※また、同時に新しく入力した値も受け取りたい。下記の name="data" の様に。 《1page.php》 → 《2page.php》 の受け渡しをする場合、 《1page.php》二次元配列作成 <?php for ($i=0; $i<10; $i++) { $test[] = array($_POST['moziretsu'],$_POST['suuretsu'],$_POST['suuretsu']); //文字・数字は毎回異なります。 } ?> <html> <body> <?= $test[2] ?><br> <?= $test[4] ?><br> <form action="2page.php" method="post"> <input type="text" name="data"><input type="submit" name="submit" value="次"> </form> </body> </html> 《2page.php》二次元配列受け取り <?php $aaaa = $_POST['data']; ?> で、新規に入力した数値は取得出来ても 二次元配列の $test はどの様に取得すれば宜しいのでしょうか? グーグル等で検索させてもらっても 希望の記事に辿り着かず困っております。 もしかしたら出来ないかも知れないので その場合は1page.phpで二次元配列をしないで 2page.phpにデータを送るり、2page.phpで二次元にする等の方法を考えなければなりませんし・・・。 書き方も悪くとても小さい初歩的な質問かとは思いますが 何卒、宜しくお願いいたします。

    • ベストアンサー
    • PHP

専門家に質問してみよう