2008/08/26
PHPのinclude
by
Tetsuya Okada
—
posted at
2008-08-26 23:24
last modified
2008-08-28 04:38
最近、いまさらながらPHPにも手を出し始めました。
Webアプリの案件ではセキュリティ関連で考慮することが多いため、最初からフルスクラッチで作るのは危険かなと思い、既存サイトの改修などからぼちぼちやっています。
それで、既存ソースの使えそうなものを引っ張ってきたりして動かしてみるんだけど、ほとんどのファイルにincludeされる共通ソースを相対パス指定しているため、ディレクトリ階層ごとにいちいち記述を変えており、煩わしいったらありゃしない。
こんな感じ...
ルートのソース:自分的には相対パス指定はありえないけど...
include './include/common.inc'
その下、subのソース:
include '../include/common.inc'
またその下、subのソース:
include '../../include/common.inc'
PHPはこれが常識?もしくはたまたま僕が見ているソースだけがそうなのかなぁ...
PHPのincludeは、サーバの物理パスで指定する必要がある。
と、いうことは、ドキュメントルートの物理パスを取得する方法があればいいんだけどと思って調べてみたが、
あった...あっさり見つかった。
_SERVER['DOCUMENT_ROOT']
つまり、こんな感じでいいわけね。
include $_SERVER['DOCUMENT_ROOT'] . '/include/common.inc';
とりあえず、共通のものはこんな感じで全部インクルードしておけばいんじゃね?
8/28追記
_SERVER['DOCUMENT_ROOT'] は、サーバの設定内容をそのまま表示しているだけなので、末尾が '/' になることもありうる。
- Category(s)
- PHP
- The URL to Trackback this entry is:
- http://www.okalabo.office-on-the.net/Blog/php306einclude/tbping