ホームページ  >  記事  >  バックエンド開発  >  PHPのインクルードページパスの問題の解決策

PHPのインクルードページパスの問題の解決策

黄舟
黄舟オリジナル
2017-06-25 10:56:471974ブラウズ


私が最初に phpincludeinclude files を使い始めたとき、何の問題も見つかりませんでした。
徐々に、非常に深刻な問題を発見しました。たとえば、1 の

<web>(网站根目录)
  ├<A>文件夹
  │ │
  │ └1.php
  ├<B>文件夹
  │ │
  │ └2.php
  └index.php


。 php include("../B/2.php"); を使用して B ディレクトリに 2.php ファイルを導入します。 A ディレクトリ内の 1.php ファイル
もちろん、実行すると問題が発生します。 ../B/2.php ファイルが見つかりません
じっくりと分析してください。 A ディレクトリ内の 1.php ファイル。これは、
1.php が実行のために Index.php にコンパイルされると、1.php が Index.php と同様に Web サイトのルート ディレクトリに配置されるのと同じになります。ただし、そうではありません。 ("../B /2.php");"../"を含めるのを忘れてください。これはどういう意味ですか?上のディレクトリでは、ルートディレクトリに 1.php が存在します。このとき、1 つ上の階層に進むと、2.php が見つからないため、ここで問題が発生します。 それでは、どうすれば解決できるでしょうか? include("/B/2.php") は良くありませんが、php での "/" の使用も良くありません。 include は、Web サイトの想像上のルート ディレクトリが現在のディレクトリを表すものではないため、まだ機能しません。
解決策はないのでしょうか?もちろん、相対パスは使用できないため、代わりに絶対パスを使用できます。
realpath("./") は、現在の Web サイトのルート ディレクトリの絶対パスを取得するために使用されます。例: c:wampwww Web サイト名
したがって、 include("../B/2.php"); を次のように変更できます。 include(realpath ("./")."B/2.php");

この場合、ページがどのレベルのディレクトリにあっても参照できるので、心配する必要はありません。もうパスの問題はありません!

以上がPHPのインクルードページパスの問題の解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。