PHPに関する質問です。可能かどうかをお聞きします。


ある、100ページくらいあるウェブサイトにPHPソースを組み込んだとします。(例 http://www.testtest.com/ahoaho_001.html

そのHTMLソース内になにかPHPソースを組み込んで、外部のデータベースのデータを読み込むようにしたい。
長いソースを置きたくないのでとりあえずrequireを使い、別のPHPを作動させたいと思います。

その際に、そのページURLと関係したデータをDBから引っ張りたいので、requireはこう書いた方がいいと思いました
<?php require('http://www.testdb.com/db.php?url=http://www.testtest.com/ahoaho_001.html'); ?>

これで、「http://www.testdb.com/db.php」が動き出した時にurlのパラメータを受け取ることができると考えました。

しかし、ここである一つの問題がでてきました。

なんせ、100ページもあるのです。100ページすべて一つ一つに、「url=」のパラメータを変えつつ
<?php require('http://www.testdb.com/db.php?url=http://www.testtest.com/ahoaho_002.html'); ?>
を100回おいていくのは非常に困難ですし、面倒です。

何かよい方法はないでしょうか?そのページのURLが受け取れればいいのですが、、、。

回答の条件
  • URL必須
  • 1人20回まで
  • 登録:2007/09/13 20:20:38
  • 終了:2007/09/20 20:25:04

回答(3件)

id:KUROX No.1

KUROX回答回数3542ベストアンサー獲得回数1402007/09/13 20:32:06

ポイント27pt

■そのページのURL

http://iwamode.net/etc/cgi_env_param.html

PATH_INFOとかそのあたりで、環境変数から自ページの

URLを取り出せばどうでしょうか?

■スクリプトを書く

を100回おいていくのは非常に困難ですし、面倒です。

この作業をするスクリプトを書く。

id:zachouR

PATH_INFO があるなんて知りませんでした!さっそく使ってみます。

スクリプトを書く方法も併せてつかってみたいと思います。(どのみち、書かなければいけないので。)

ありがとうございました

2007/09/13 20:38:46
id:ton-boo No.2

ton-boo回答回数55ベストアンサー獲得回数52007/09/13 20:54:58

ポイント27pt

http://www.php.net/manual/ja/reserved.variables.php#reserved.var...

URLはただの参考です。

<?php require('http://www.testdb.com/db.php'); ?>

で普通に呼び出して、db.phpの中で$_SERVER['SCRIPT_NAME']とか参照すれば、呼び出し元のパスが取得できると思います。(念のため手元の4.3.11で確認しました)

別に、ページごとに別の呼び出し方をする必要はないような。

id:kent0608 No.3

kent0608回答回数220ベストアンサー獲得回数232007/09/13 23:59:48

ポイント26pt

100ページすべてにURLを指定するのも大変ですが、100ページあるHTMLすべてにPHPを埋め込むほうが大変じゃないでしょうか?

ページのURLを丸ごと指定しなければ関係したデータを取り出せないという仕様はやめて、URLの識別子から、ユーザが表示させたいページを判断し、その値をdbを扱う関数に引渡し、HTMLで出力するという考え方に切り替えたほうが効率がいいはずです。

例えば

利用者のリクエストが

http://www.nanntoka.com/index.php?page=ahoaho&num=002

だった場合、PHPで page と num を$_GET['page'] $_GET['num']から取得し、それらを使ってDBに接続する関数に渡し、帰ってきたデータを表示用のHTMLテンプレートファイルと組み合わせて表示するというやり方です。

こういったWebアプリケーションを作成するときに使われるデザインパターン(設計パターン)は数多くありますが、先人達がより多くの人に使いやすいようにと、まとめてくれたものがPHPには沢山存在します。これを「フレームワーク」といいます。できれば何らかのフレームワークを導入したほうが良さそうです。

http://codezine.jp/a/article/aid/704.aspx

コチラなどを参考にしてみると良いかもしれません。

PHPのフレームワークは色々と乱立していて、選択に迷うかもしれません。

そのときは言語が違いますが、Ruby on Railsなどを検討されてみるのも悪くないと思います。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません