クライアントはサーバーを移行しました。サーバー アドレスは同じですが、内部フォルダー構造が変更されました。ファイルへのサーバー パスを必要とする PHP 関数を使用していました。
たとえば、Web サイトのアドレスは www.example.com/file.php で、関数は次のようなパスを使用しています。
require_once('/var/www/file.php');
調べる方法はありますか?
これはGoogleでの最初のヒットであり、受け入れられた回答は質問の精神に従って不完全であるため、ここに完全な回答があります.
__FILE__
ジョン・コンデが言ったように魔法の定数ですが、実行中の現在のPHPファイルの物理パスしか提供しません。
__DIR__
現在実行中のファイルのディレクトリを取得します。または、次を使用することもできますdirname(__FILE__)
$_SERVER['DOCUMENT_ROOT']
Web ルートへの物理パスを取得します。/var/www/example.com/httpdocs
たとえば、Web サイトのフォルダー構造が次のようになっているとします。
|-foo
| |-bar
| |-executing.php
|-biz
|-required.php
executing.php
が現在実行されていて、含めたいファイルであるとしましょうrequired.php
。いくつかのオプションがあります。
//relative to the file
require __DIR__ . "/../../biz/required.php";
require dirname(__FILE__) . "/../../biz/required.php";
//relative to the web root
require $_SERVER['DOCUMENT_ROOT'] . "/biz/required.php";
もちろん、これらの例のいずれでも、require_once
代わりに を使用することもできますrequire
。