• ベストアンサー

requireでの絶対パス

いつもお世話になっております。 requireを使ってファイルをインクルードしているのですが、その際は相対パスで記述しています。 <?php require("../template/test.php"); ?> これを絶対パスでうまく記述する方法はあるのでしょうか? 通常、絶対パスで書いてしまうと、iniファイルで定めた絶対パスの指定フォルダが対象になってしまうため、サーバー上での絶対パスにしたいのですが…。 方法がありましたらご教授よろしくお願いします。

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

  • ベストアンサー
  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.4

> そのルート上のパスの設定がうまくいきません。 差し障りのない範囲で、「どう設定したが、どううまくいかないか」を 教えてください。 エラーメッセージが出たのでしたら、その内容が 解決への手がかりになるかもしれません。

armstrong-us
質問者

お礼

ご回答ありがとうございました。 なんとか自己解決できそうです。

その他の回答 (3)

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.3

> ですが、レンタルサーバーなどではiniファイルの設定を変えることは出来ません。 ini_setという関数が使えるかもしれません。

armstrong-us
質問者

お礼

ご回答ありがとうございました。

armstrong-us
質問者

補足

ありがとうございます。 ini_setですか、勉強になりました。 それで <?php ini_set('include_path',ルート上の絶対パス); ?> でやろうとするんですけど、そのルート上のパスの設定がうまくいきません。 いかがなものでしょう? 本番環境はunix,開発環境はwindows

noname#246547
noname#246547
回答No.2

php.iniにinclude_pathを設定すれば解決できそうですよ。

参考URL:
http://php.benscom.com/manual/ja/ini.core.php
armstrong-us
質問者

補足

ありがとうございます。 include_pathを設定すれば出来るということはわかっているんです。 ですが、レンタルサーバーなどではiniファイルの設定を変えることは出来ません。 なので、ほかになにかいい方法(関数とかで)がないのかご教授いただいてる次第です。

  • calltella
  • ベストアンサー率49% (317/635)
回答No.1

サーバー上での絶対パスと言うのは 「c:/hogehoge/template/test.php」 ↑こういう事ですか? それとも 「http://hogehoge/template/test.php」 ↑こういう事ですか?

armstrong-us
質問者

お礼

ご回答ありがとうございました。

armstrong-us
質問者

補足

ご回答ありがとうございます。 絶対パスというのは / ←から切ったルート上のパスです。 <?php require("../template/test.php"); ?> ↓ <?php require("/template/test.php"); ?> のようにしたいのですが、これだとエラーになってしまいます。 今あるすべてのページにこのファイルをインクルードさせたいのですが(置換ソフトで一括置換します)、階層によって相対パスだと手直しをしなければいけないので、htmlの画像などに使うような絶対パスでうまくいかないかなと思いまして。