- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHP/icludeを使った相対パスの引き方について)
PHP/icludeを使った相対パスの引き方について
このQ&Aのポイント
- プログラム初心者です。includeやrequireなどの関数を使ってファイルを呼び込むために、下記のようなソースを作りましたが、Fatalエラーになってしまいます。どこがいけないのかご指摘をいただけないでしょうか?
- ネットでこれらの関数の扱い方について検索しますと、PHPでは実行されたファイルのディレクトリがルートとして扱われるそうで、他のディレクトリを参照する時は、相対パスのみでは無理の様子でした。この場合、組込み定数となる__FILE__を使って絶対パスを導かなければいけないような記述がありました。これに習って書いてみたのですが、どうもうまくいきませんのでご指導をいただければと思います。
- 以下のツリー構造にあるフォルダおよびファイルを参照するために、nav.phpファイルとindex.phpファイルを作成しましたが、うまく動作しないようです。なにか問題点はありますか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
nav.php まず、for文の閉じ}が無い事 絶対パスでも動くし、相対パスでも動きますよ file文は関数なので、スペース開けないように(まぁ、あけても動くけど) $Data=file("../mod/nav.csv"); for($i=0;$i<sizeof($Data);$i++){ $line=explode(",",$DataN[$i]); } index.php パスの指定の仕方がおかしい。 include onceの文法がおかしい。include onceではなく include_once です。 同じく スペースあけないように include_once("con/nav.php");
お礼
大変助かりました。有難うございます。
補足
今、相対パスで実行することができ、初歩的な間違いに気づくことができました。有難うございます。 もう少し理解を深めたいので、質問しても良いでしょうか? 1)相対パスに使う、ドットは、実態のツリー階層の数と合わせる必要がありますか? 2)includeは、多段構造となっても実現可能でしょうか?多段といいますのは、a.php ← b.php ← c.phpといった具合に取り込むことです。 もし、お分かりでしたら、教えてください。よろしくお願いいたします。