- ベストアンサー
requireでの絶対パス
いつもお世話になっております。 requireを使ってファイルをインクルードしているのですが、その際は相対パスで記述しています。 <?php require("../template/test.php"); ?> これを絶対パスでうまく記述する方法はあるのでしょうか? 通常、絶対パスで書いてしまうと、iniファイルで定めた絶対パスの指定フォルダが対象になってしまうため、サーバー上での絶対パスにしたいのですが…。 方法がありましたらご教授よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
> そのルート上のパスの設定がうまくいきません。 差し障りのない範囲で、「どう設定したが、どううまくいかないか」を 教えてください。 エラーメッセージが出たのでしたら、その内容が 解決への手がかりになるかもしれません。
その他の回答 (3)
- asuncion
- ベストアンサー率33% (2127/6289)
> ですが、レンタルサーバーなどではiniファイルの設定を変えることは出来ません。 ini_setという関数が使えるかもしれません。
お礼
ご回答ありがとうございました。
補足
ありがとうございます。 ini_setですか、勉強になりました。 それで <?php ini_set('include_path',ルート上の絶対パス); ?> でやろうとするんですけど、そのルート上のパスの設定がうまくいきません。 いかがなものでしょう? 本番環境はunix,開発環境はwindows
php.iniにinclude_pathを設定すれば解決できそうですよ。
補足
ありがとうございます。 include_pathを設定すれば出来るということはわかっているんです。 ですが、レンタルサーバーなどではiniファイルの設定を変えることは出来ません。 なので、ほかになにかいい方法(関数とかで)がないのかご教授いただいてる次第です。
- calltella
- ベストアンサー率49% (317/635)
サーバー上での絶対パスと言うのは 「c:/hogehoge/template/test.php」 ↑こういう事ですか? それとも 「http://hogehoge/template/test.php」 ↑こういう事ですか?
お礼
ご回答ありがとうございました。
補足
ご回答ありがとうございます。 絶対パスというのは / ←から切ったルート上のパスです。 <?php require("../template/test.php"); ?> ↓ <?php require("/template/test.php"); ?> のようにしたいのですが、これだとエラーになってしまいます。 今あるすべてのページにこのファイルをインクルードさせたいのですが(置換ソフトで一括置換します)、階層によって相対パスだと手直しをしなければいけないので、htmlの画像などに使うような絶対パスでうまくいかないかなと思いまして。
お礼
ご回答ありがとうございました。 なんとか自己解決できそうです。