• ベストアンサー

ページに現在地を表示したいのですが・・

このサイトにも使われていますが、【教えて!goo】の検索窓の2段下の部分に 教えて!goo > コンピューター [技術者向け] > プログラミング > PHP というような現在地表示がされており、リンクが付いています。このような現在地表示をPHPで作ることは可能でしょうか?また、可能でしたらご教授お願いします。 過去の質問と別サイトでも探したのですが、 見つかりませんでした。(見つけ方が悪い?) どうか宜しくお願いします。

  • PHP
  • 回答数4
  • ありがとう数5

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

  • ベストアンサー
  • lesbrers
  • ベストアンサー率48% (23/47)
回答No.4

[1]にせよ、[2]にせよ、別個にデータファイルが必要でしたね。 キチンとフローチャートを描いた上での発言ではないので、ただの直感の話になってしまいますが、データベース的な考え方をすれば、 [1]サイトマップ通りのディレクトリ構成、ファイル構成にして、URLから現在地を推定 のほうが、データが正規化された状態みたいになるし、後々めんどくさくないのかなという気がします。 (サイト構造が変わらず、ファイルだけが増えていくのであれば) 処理は以下の手順が基本になるのではないかと思います。 紙を使ってない、脳内作業によるものですので、アラや間違いだらけかもしれませんが、ヒントになればさいわいです。 文法その他を全く無視した書き方をします。 たとえば、 http://siteurl/category/group/filename.htm というURLを取得し、それを"/"で切り分けます。 そして、切り分けた filename.htm group category という値にアクセスできるようにします。 データファイルのテーブル構造は、 (URLから所得できる値)|表示する日本語 としておきます。 で、URLから取得した値と表示する日本語を、2次元配列に入れます。 今回は $navi[0]=array(filename.htm,"ファイル名"); $navi[1]=array(group,"グループ"); $navi[2]=array(category,"カテゴリ"); とします。 で、この配列を使い、ループ処理で <a href="(サイトのベースURL)">ホーム</a> <a href="1つ目のURLに$navi[2][0]を足す">$navi[2][1]</a> <a href="2つ目のURLに$navi[1][0]を足す">$navi[1][2]</a> <a href="3つ目のURLに$navi[0][0]を足す">$navi[0][2]</a> のように出力すれば、いけるのではないかな、という気がします。 書き終わって気付きましたが、 $navi[0][0]がindex.htmのときの対処に困りますね。 (index.htmは通常複数存在する。値の重複=データ正規化されていない) ファイル名まで表示する必要がないのなら、index.htmがあるディレクトリ名まで表示すればOKですが。 これ以外にも、突っ込みどころ満載だと思います。 私の思いつきを洗練するのも手ですし、新たにフローをお考えになってもよいと思います。

perl_beginner
質問者

お礼

お礼が遅れて大変申し訳ありません。 丁寧なご教授有難うございました。 lesbrersさんの教えていただいた 「URLを/毎に分けて配列化する方法」を 参考にフローを作成してみようと思います。 大変参考になりました。 有難うございました。

その他の回答 (3)

  • lesbrers
  • ベストアンサー率48% (23/47)
回答No.3

各ページに <?= breadcrumbs() ?> みたいに関数を入れるだけで(関数名は適当です)、いわゆる「パンくずナビゲータ」を自動生成する、ということでいいのでしょうか。 結論から言えば、可能です。 というか、何通りもやり方があります。 データベースを使わなかったり、ファイルをincludeしまくるような大規模 or 複雑なサイトでなければ、 ・サイトマップ通りのディレクトリ構成、ファイル構成にして、URLから現在地を推定 ・サイトマップとURLの対応を保存するファイルを用意しておき、それを利用する 以上のようにしても可能です。

perl_beginner
質問者

お礼

お礼が遅くなり大変申し訳ありません。 現在作成しているページは単一ページであり、 フレーム等は使っていません。 その場合、lesbrersさんの教えてくれた >[1]サイトマップ通りのディレクトリ構成、    ファイル構成にして、URLから現在地を推定 >[2]サイトマップとURLの対応を保存するファイルを    用意しておき、それを利用する が使えると思います。作り方としては、以下の方法でよろしいでしょうか? [1]の場合、HTMLで別ページにサイトマップを作成して  サイトマップに記載されているURLを元に現在地を 指定する。 [2]の場合、テキストファイルでサイトマップを作成し  てそこにPHPがアクセスして解析後、現在のページ 名を表示する。 そしてまた質問なのですが、どちらが長期運用していく上で効率的と考えられますか?運用者が変更になった場合、どちらの方が引き継ぎしやすいかな?と思った所です。 大変申し訳ありませんが、ご教授宜しくお願いします。

回答No.2

知りたいことは、こういうことかな? 教えて!goo > コンピューター [技術者向け] > プログラミング > PHP のPHPの部分のリンクが、 http://oshiete1.goo.ne.jp/oshiete.php3?c=256 となっていますが、"?c=256" の部分でしょうか? これは、"oshiete.php3"への引数です。

perl_beginner
質問者

お礼

お礼が遅れて大変申し訳ありません。 引数について調べていたら返答が遅れてしまいました。 丁寧なご教授有難うございました。 また何かありましたら宜しくお願いいたします

  • kusukusu
  • ベストアンサー率38% (141/363)
回答No.1

PHPがどうこうって言う問題ですか?(^^; 普通にリンク貼ってるだけじゃないんですか?

関連するQ&A

  • 1ページ目の検索窓に文字列を入れて次のページで検索

    教えてgoo(OKwave)のように、1ページ目の検索窓に文字列を入れて、 次のページで検索結果を表示するには、どのようなプログラミング言語を習得すれば可能でしょうか? URLを見ると、search_option.php3となっていることから、 PHPを習得すればこのようなサイトを作れますか?

  • 現在表示ページについて

    今、ホームページを作成していますがわからない事があります。 よく、ネットを見ているとこういうのを見ます。 現在表示されているページ:TOP>コンピュータ> これを付けたいと考えているのですが、付け方が分かりません。どうやって作成すればいいでしょうか。1つずつリンクを貼ればいいと思ったのですが...。ページ数が多い為出来ません。何か画期的な方法は無いでしょうか。 宜しくお願い致します。

  • 自分のホームページと異なるページが表示されてしまいます。

    よろしくお願いします。 フリーのリンク集サイトに登録をして、『リンクしてくれた方を表示するために』 自分のホームページ(トップページ)の 『link』ボタン から、phpという拡張子をつけたリンク用ページにジャンプさせるため、『絶対パス』を設定しました(homepage@link.php)』 その後 リンク集サイトに登録をしました。 数日たってから、自分のホームページを 『タイトル名』で検索すると、登録先のリンク集サイトが表示されるようになってしまいました。 登録前は、タイトル名で検索すると、自分のホームページが表示されていました。 homepage@link.php のページをサーバから削除したり、ホームページのリンクボタンを削除したりしたのですが、変わりありませんでした。 原因を尋ねようとして、リンク集サイトに、何べんも質問をしたのですが、返事がなく、困っています。 このような場合、どのように対処すれば良いですか? 

  • ページを表示できません

    初歩的な質問で恐縮です。 インターネットで、以前に「お気に入り」に登録したURLをクリックしたり、リンクされているURLをクリックすると「ページを表示できません。検索中のページは現在利用できません。webサイトに技術的な問題があるか、ブラウザの設定を調整してください」というメッセージが表示されることがありますよね。 これって、そのページ自体が現在は存在しないということなのでしょうか。それとも更新されていて、工夫すればその更新されたページを見ることができるのでしょうか?

  • 現在いるページのURLを表示させる方法

    携帯サイトを運営しています。 現在いるページのURLを、プログラムなどを使って、自動的にページ上に表示させることは出来ないでしょうか?(プログラムの知識はありません) 「http://hahaha.jp/mobile/test.html」というページにいる場合、「http://hahaha.jp/mobile/test.html」と言う文字列を、ページ内に表示させたいです。 実際は、「http://hahaha.jp/mobile/test.html」をそのまま表示させたいわけではなく、「<a href="http://hahaha.jp/mobile/test.html">リロード</a>」という状態で表示させるつもりです。 つまり、自サイトへのリンクということです。 これをしたいのは、携帯サイトがPCサイトとして認識され、google変換を通した状態で表示されてしまっているためで、上記のようなリロードリンクを設置することによって、変換なしのページに誘導したいからです。 現在のページの拡張子はPHPなので、PHPだと都合がよいのかなと思います。 別の方法でも構いませんので、教えていただければと思います。

  • ページが表示できません?

    Gooのトップページの「おすすめのサイト」の下に「ページが表示できません」と5段(5行)にわたって出ますが、なぜでしょうか? ウインドウズ98です。

  • チェックを入れたページを表示するには

    こんばんわ。 現在、仮想で検索プログラムをチームで作成しています。 その中で、閲覧履歴を保存して別のページで表示する、というものを作る事になりました。検索してそのページに飛ぶのではなく、閲覧するページにはチェックボックスを置いて、そこにチェックを入れれば、お気に入り登録され、別のページに表示される。表示されたページのリンクを押せば、目的のページに飛べる、といった感じにしたいのですが可能でしょうか?可能ならば、やり方を教えて下さい。 ちなみにWebサーバーはApache,DBはMySQL,プログラミングにはPHPとHTMLを使用し、OSはWindowsXPです。 説明下手で分かりづらいとは思いますが、どうかお願いします。

    • 締切済み
    • PHP
  • 三度目の現在地

    これまで二度同じ質問を致しましたが納得できなかったので三度目の質問をさせて戴きます。 質問はgoogle mapの現在地の表示方法についてです。 過去二度の質問時点では現在地がとんでもない地区が設定されており、色々と調整をしても見たのですが正しい現在地が表示できませんでした。 もう諦めて何の設定変更もせずにいたところある日からそれが正しく表示されるようになりました。googleの検索で最下段に表示されている場所も正しくなりました。 そこで質問ですがgoogle mapで表示する現在地は何を読み取って表示しているのかを教えてください。 私はWi-Fiは使用しておらず携帯電話は10年ほど前のガラケーです。PC関連はスキャナー・プリンター・外付けDisk程度ですが全部有線接続です。

  • ページの現在地による要素へのclassの追加

    現在ホームページを作成しようとしていまして、HTML5で書かれているサイトを見て回っていましたら、東京大学TLOのサイト(http://www.casti.co.jp/)にたどり着きました。 このサイトでは、ページをスクロールすると、ページ左側のナビゲーションがページに同調して、表示されたセクションのリンクが選択された状態になります。 FirefoxのアドオンであるFirebugでソースを監視しながら見ていると、表示されているセクションをリンクしているli要素に、class="current"が追加されています。個人的には、javascriptか、それで記述されたJQueryで、表示領域の特定とclassの追加を行っていると思うのですが、ソースにそのような記述がありません。私がjavascriptやJQueryにあまり明るくないために見つけられないだけかもしれませんが。。。 面白い技術ですので、ぜひ理解し、できれば今後のHP作成に生かしたいと思うのですが、どなたか説明していただけないでしょうか? よろしくお願いします。

    • ベストアンサー
    • CSS
  • フレームページの表示について

    現在メモ帳タグ打ちでサイトを作っており、フレームページを 現在作成中なのですが、一つ自分の知識では解決できない問題が できてしまったので質問させていだきます。 2分割フレームで、 メニュー ┃ 表示ページ メニューでリンクをクリックした際、 表示ページにリンク先を表示させたいのですが、 新窓開きになってしまいます。どうすればいいのでしょうか? 講座サイトで見たターゲット指定もやっているのですが・・・。 ご回答お待ちしております。