• ベストアンサー

$_GETについて

URL:index.php?sort=new&category=0701 $_GET['category']にてcategoryの0701を取得し置換えてtextファイルを任意の場所に表示したい 0701のときはcate.textを表示し0702のときはcate1.textを表示する 素人でわかりません。よろしくお願いします。

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

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

  • ベストアンサー
  • NARH
  • ベストアンサー率82% (88/107)
回答No.2

すみません。まだピンとこないところがあるので、先にパラメータ category に対してファイルを決定するサンプルソースを記載します。 =======><===== ここから <?php // 表示したいファイルのあるディレクトリ設定 $textDir = dirname(__FILE__) .DIRECTORY_SEPARATOR; // カテゴリ名と表示ファイルのマップ $categoryMap = array( 'default' => 'defaults.text', '0701' => 'cate.text', '0702' => 'cate1.text', ); // パラメータ取得。ない場合はデフォルト $category = isset( $_GET['category'] ) ? $_GET['category'] : 'default'; // categoryMap にない場合はデフォルト $category = array_key_exists( $category, $categoryMap ) ? $category : 'default'; // マップよりファイル名を取得しフルパスを作成 $file = $textDir . $categoryMap[$category]; // ファイルがない場合はエラー if( file_exists( $file ) === FALSE ) die("ファイル${file}がありません"); // テキスト内容の取得 $textContents = file_get_contents($file); // テキスト内容の表示 echo $textContents; ========><===== ここまで > phpの中に表示させたいのですが... PHPソースとして使いたいのか、表示に含まれていればいいのか判断ができませんでした。 PHPソースとして使う場合には、テキスト内容の取得部分以降は必要なくて, include_once($file); とすると使えます。 > 当然カテゴリ別にtexファイルは増えていきます。 ん?これは テキストファイルですか? tex (LaTeXやpTeX の tex) ソースのことを言っていますか? タイプミスなのか、本当に tex ファイルなのか。(でも文章中に2回も tex ってでてくるので texかなぁ?) 動的に tex ファイルを作ってコンパイルすのであれば考慮していない部分があると思います。 本当にこれでやりたいことに繋がるのか、ちょっと今の情報ではわかりません。

papa555
質問者

お礼

ありがとうございます。 無事出来る事ができました。 texはタイプミスです。もうしわけありませんでした。 丁寧な説明で分かりやすかったです。

その他の回答 (1)

  • NARH
  • ベストアンサー率82% (88/107)
回答No.1

パラメータ category に対してファイルを決定する事は比較的簡単ですが、任意の場所に表示の部分が、実際どういう意味なのか分かりません。 テキストファイルの決まった文字列を置換する、何行目に追加する。何文字目に追加する。など具体的な事がわかるといいのですが。 それとも、今回はパラメータからファイル名を決定する部分のみ方法が分かればいいのでしょうか?

papa555
質問者

補足

お返事ありがとうございます。 phpの中に表示させたいのですが、ランダムにテキストファイルの1行目を読み込み表示する方法や指定カテゴリにテキストファイルの1行だけ読み込む方法は調べていたらみつけました。ランダムではなく決まったカテゴリに決まったtxtファイルの全行を読み込みたいにです。その指定に$_GET['gategory']を使ってカテゴリの指定をしたいです。texファイル全行を指定カテゴリに表示みたいな感じですかね。当然カテゴリ別にtexファイルは増えていきます。説明不足ですみません。

関連するQ&A

  • フォームを利用しないGET送信について

    任意のページより、下記例のようなテキストリンクをクリックさせ、 遷移した先のページURLに「?categor_id=1」などと付与させたいのですが、 どうすればよいでしょうか? ・カテゴリー1 ・カテゴリー2 別にフォームを利用してもよいのですが、 自由入力項目を付与させたいわけではないため、 その場合は、具体的にどう書けばよいでしょうか? (フォームの中にテキストリンクを書く方法が、分からない、という意味です) また、自分で検索した限りでは、下記のようなページを見つけたのですが、 この場合だと、URLを予め指定しなければいけないようなので、 任意のページに設置するためには、 自分のページを動的に取得して、末尾に「?categor_id=1」を 付与するような感じなのでしょうか? ▽http://www.php-labo.net/tutorial/php/form.html#get 後、セキュリティのこととかで、 何か気にすることはありますか?

    • ベストアンサー
    • PHP
  • $GETが取得できない場合に指定の値を使う

    PHPでURLから変数を取得できるGETというのがありますがURLにこの値が指定されていない場合に指定した値を使うことは可能でしょうか? つまりこういうことです。 $aaa = $_GET['bbb']; としている場合にURLを ~/index.php?bbb=0000 とした場合は aaa=0000 となりますが、 ~/index.php としかしなかった場合はaaaの値は取得できずにエラーになってしまうため、このaaaの値を強制的に1111に指定し aaa=1111 としてphpプログラムを続行させたいのです。 そのようなことはできますか?

    • ベストアンサー
    • PHP
  • URL取得後テキストに置換えしたい

    当サイトのカテゴリをindex.php?&category=100&category2=110というふうになります。 category2=110を取得して外部ファイルtext.txtを読み込み東京に置換えしたいのですが仕方がわかりません。 text.txtは 110;東京 111;神奈川 112;千葉 ・ ・ ・ 143;沖縄 となります。 $category2 = $_GET['category2'];を使うということは調べてわかりましたが初心者仕方がわかりません。よろしくお願いします。

    • ベストアンサー
    • PHP
  • Ajax・jQueryでGETとPOSTする方法

    画像をクリックしたときにjQuery,Ajaxを利用してGET/POSTをしたいです。 POSTとGETは良く使うので今回両方の流れを知りたいと思います。 PHPではPOST、GETは使うことができます。javascript,jQueryはちょっと触ったことのある程度です。 フォームに値を入力してjQueryとAjaxでPOSTでデータを送るのは下記ホームページを参考にしてみたら成功しました。 http://webcake.no003.info/webdesign/jquery-ajax-php-post-sample.html 今回は下記のような複数のパラメータを送信したいと思います。 画像Aをクリックした時にkeyword=aaaa,cate=1 画像Bをクリックした時にkeyword=bbbb,cate=2 画像Cをクリックした時にkeyword=cccc,cate=3 今までPHPでGETを使っていた時のHTML部分です↓ <a href="index.php?keyword=aaaa&cate=1"><img src="images/a.jpg"></a> <a href="index.php?keyword=bbbb&cate=2"><img src="images/b.jpg"></a> <a href="index.php?keyword=cccc&cate=3"><img src="images/c.jpg"></a> 「send.phpファイル」 <?php //POSTでデータが送られた場合 echo $_POST['keyword'].'<br>'; echo $_POST['cate'].'<br>'; //GETでデータが送られた場合 echo $_GET['keyword'].'<br>'; echo $_GET['cate'].'<br>'; ?> ==GET================================================================ (HTML部分) <a href="index.php?keyword=aaaa&cate=1"><img src="images/a.jpg"></a> の記載方法だと、クリックしたときにアドレスバーにアドレスが入力されるのでページが切り替わってしまいAjaxにならないので違う形にする必要があると思いますがどのようにkeyword,cateのパラメータを持たせればよいのでしょうか? または、この形のままで良く、リンクした時にページが飛ばないような処理方法があるのでしょうか?(またはAjaxではあまりGETは使わないのでしょうか?) 上記に記載した、POSTの参考例のソースを記載します。 GETの場合にどのように変えたらよいのでしょうか。 $(document).ready(function() { var data = {request : $('#request').val()};//GETで複数値対応に書き換えが必要。 $.ajax({ type: "GET", url: "send.php", data: data, success: function(data, dataType) { $( '#test' ) . html( data ); },error: function(XMLHttpRequest, textStatus, errorThrown) { this; alert('Error : ' + errorThrown); } }); }); ==POST================================================================ (HTML部分) formを使う形になると思いますが、どのような書き方が良いのか教えて下さい。 画像を使うと下記のようになるとは思いますが、A,B,Cそれぞれにkeyword,cateの情報をどのように持たせておいたらよいのかがわかりません。 <form> <button type="submit" name="" value="*****"><img src="sample.gif"></button> </form> (jQuery部分) $(document).ready(function() { var data = {request : $('#request').val()};//POSTで複数値対応に書き換えが必要。 $.ajax({ type: "POST", url: "send.php", data: data, success: function(data, dataType) { $( '#test' ) . html( data ); },error: function(XMLHttpRequest, textStatus, errorThrown) { this; alert('Error : ' + errorThrown); } }); }); 以上、よろしくお願い致します。

    • ベストアンサー
    • AJAX
  • GETを使ったファイル間の値渡し

    現在、PHP・MySQLを使用した開発を行っております。 早速、質問に入りますが・・・まずは概要として以下のような使用となっております。 ・index.htmlからリンク時に、A.phpに飛びDBへアクセスし表示すべきURL(top.html)を取得します ・表示されたURL(top.html)には、5つのリンクがあるのですが5つのリンク先URLは、A.php処理中にDBにて取得した5つのパラメータ値としています。 つまり、top.html内に変数値として値を保持させておきたいのです。 sessionを使うという話しもあったのですが、諸事情により現在はGET関数を思考しております。 以上が概要です。 質問は、A.phpにて取得した5つの値をtop.htmlに渡すにはどのようなコーディングを行えば良いのでしょうか? PHP初心者のため苦戦しております。 何かアドバイスをお願いできれば幸いです。

    • ベストアンサー
    • PHP
  • jQuery.getの引数dataで動的にするには

    お世話になります。 jQuery.get()の第二引数dataによって、動的にJSONを取得したいです。 第一引数urlがhttp://test.com 第二引数が{id:1,name:tanaka}としてgetした場合 http://text.com?id=1&name=tanaka とリクエストしてると考えてよいのでしょうか。 ある大手サイトでget()時、dataによって取得できるJSONが違うのですが、 そのURLの最後に拡張子がありません。 JSONは拡張子が無くても良いというのを知りましたが これはJSONの形式でそのように動的に発行しているのでしょうか。 もしくはサーブレットあたりが動いて動的にさせてるのでしょうか。 たぶんPHPとかではないですよね。 上の例でいくと http://text.com?id=2 http://text.com?id=5 http://text.com?id=15 これで取得できるのが違います。 どうなってるのかさっぱり判りません。 すみません、よろしくお願いいたします。

  • キーワードの再検索で

    index.phpからキーワードを書きだし、search.phpで$_GETで受け取り→エンコード→ リクエストURLまでセットし、表示されるまでは問題ないのですが、ソート順を変更した際にリクエストURLに2回、キーワードが入ってしまいます。ブラウザのアドレスバーをみると、エンコードされた値(%e3%81%bf%e3%81%8b%e3%82%93(みかんみかん)と言う感じにが2回入ってしまいます。それを、ソートを変更しても、キーワードを1回だけ入れるには、どのようにしたらいいのでしょうか? [index.php] <p><a href="search.php?keyword=みかん&sort=standard">みかん</a></p> [search.php] <?php $base = 'http://xxx.xxxxxx.co.jp/xxx/xxx'; $keyword =$_GET["keyword"]; $keyword = urlencode($keyword); $sort = $_GET["sort"]; $sort = urlencode($sort); // リクエストURL $url = $base ."&keyword=".$keyword."&sort=".$sort. ; ?> 表示順序 <form action="<?=$_SERVER["PHP_SELF"]?>" method="get"> </select> <input type="hidden" name="keyword" value="<?php print(htmlspecialchars($keyword, ENT_QUOTES)); ?>"> <select name="sort"> <option value="satandard">新着</option> <option value="itemPrice">安い</option> <input type="submit" value="検索"> </select> よろしくお願いいたします。

    • 締切済み
    • PHP
  • Wordpressの条件分岐について

    Wordpressの条件分岐について質問です。 カテゴリー毎に表示される記事のデザインを変更したいのですが、 複数のカテゴリーに登録した際に思い通りに表示できません。 「cate01(ID:1)」と「cate02(ID:2)」の2つのカテゴリーがあり、 表示する記事ページ(single.php)のデザインを分けています。 「cate01(ID:1)」は「single01」、「cate02(ID:2)」は「single02」という具合です。 そこで、「cate01(ID:1)」と「cate02(ID:2)」の両方に該当する記事の場合、 「cate02(ID:2)」からリンクされた記事を表示すると「cate01(ID:1)」のテンプレートが割り当てられてしまいます。 現状「single.php」で以下のように条件分岐させているのですが、 先に「cate01(ID:1)」の記述があるので、優先されるのではないかと思います。 <?php if ( in_category('1') ) { include(TEMPLATEPATH . '/single01.php'); } else if ( in_category('2') ) { include(TEMPLATEPATH . '/single02.php'); } else { include(TEMPLATEPATH . '/index.php'); } ?> 「cate02(ID:2)」から「single02」を表示するにはどうすればよいでしょうか? 当方PHP初心者ですので、あまり詳しいことはわかりません。 どうぞよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • Ajax・jQueryでGET時にIEで文字化け

    Ajax・jQueryで日本語をGETするとき、IEで文字化けします。 (Firefox,chromeでは文字化けは起こりません。IE6/7/8で確認すると文字化けします) どのようにしたら文字化けが起こらなくなるか教えていただければと思います。 環境 PHP:5.1.6 サーバー・HTMLの文字コードはUTF-8 下記のようなリンクを作り、「jquery.url.js」でパラメータを取得しています。 <a href="./test.php?keyword=テスト&cate=1"> (実際には下記のソースに示しますが、テストの文字はurlencordしています。) 【javascript部分】 <script type="text/javascript" src="jquery.url.js"></script> <script type="text/javascript"> $().ready ( function() { $('#sample-get').find('a').click ( function() { var url = $.url ( $(this).attr('href') ); $.ajax ({ type: 'GET', url: 'send.php', cache: false, data: url.attr ( 'query' ), success: function ( data, dataType ) { $('#test').html ( data ); }, error: function ( XMLHttpRequest, textStatus, errorThrown ) { this; alert('Error : ' + errorThrown); } }); return false; }); 【HTML(PHP)部分】 $keyword='テスト'; $keyword=urlencord($keyword);//urlエンコード echo<<<EOF <div id="sample-get"> <a href="./test.php?keyword=$keyword&cate=1"><img src="images/sample1.png" alt="sample1" height="200" width="200"></a> </div> EOF; 【PHP部分(send.php)】 <?php echo $_GET['keyword']; echo urldecord($_GET['keyword']); echo $_GET['cate']; ?>

    • ベストアンサー
    • AJAX
  • JS→PHP「リンクget送信」$.getの違い

    javascriptからPHPへ変数を渡したいのですが、 リンクURLに付与して、PHP側で$_GET[" "]で受け取るのと、 jQuery「$.get」で宛先にphpファイル指定するのとでは、何が違うのでしょうか? 何となく、「$.get」の方が良さ気な感じもするのですが… エラー処理? やってることは、どちらも同じget送信という理解で良いのでしょうか?