php+html PHPで汎用的な絶対パスの書き方

htmlなどにphpを埋め込んで使う場合、今後のメンテナンスやテストを考慮すると相対パスで書くのが望ましい。
しかしホームページの階層構造などはいつ変わるかもしれない訳で、そうなると相対パスでは対応できない。
たとえば以下のようなコードをindex.htmlに埋め込んだ場合、
<?php require(“/common/xxx.php”); ?>

index.htmlの階層が変われば当然、xxx.phpが見つからなくなる。
そんな場合は、$_SERVER[‘DOCUMENT_ROOT’]を使えばよいのだ。
<?php require($_SERVER[‘DOCUMENT_ROOT’].”/common/xxx.php”); ?>

これでindex.htmlがどの階層にあろうが、(一般的なサーバ設定なら)ホームページの最上位階層がセットされるので
絶対パスでありながら汎用的な扱いが可能になる。

コメント

タイトルとURLをコピーしました