ホームページ > バックエンド開発 > PHPの問題 > PHPの絶対パスを変更する方法(3つの方法)

PHPの絶対パスを変更する方法(3つの方法)

PHPz
リリース: 2023-04-03 20:06:01
オリジナル
1662 人が閲覧しました

PHP を使用して Web サイトやアプリケーションを開発するプロセスでは、外部ファイルやリソースを参照する必要がよくあります。現時点では、コードの正確性を確保するために絶対パスを使用する必要があります。ただし、Web サイトをローカル サーバーからリモート サーバーに転送する場合や、ファイルの保存場所が変更される場合など、絶対パスの変更が必要になる場合があります。

PHPの絶対パスを変更する方法を紹介します。

1. 現在のファイルのパスを取得します

絶対パスを変更する前に、現在のファイルの絶対パスを取得する必要があります。次の PHP コードを使用して、現在のファイルのパスを取得できます。

$dir = dirname(__FILE__);
ログイン後にコピー

このうち、dirname() 関数はファイル名のパス情報を削除するために使用され、__FILE__ 定数はファイル名のパス情報を削除するために使用されます。現在のファイルのフルパスを取得します。上記のコードを実行すると、$dir 変数が現在のファイルのパスになります。

2. 絶対パスを変更する

現在のファイルのパスを取得した後、目的の方法で絶対パスを変更できます。具体的な方法は次のとおりです。

  1. パスを手動で変更する

絶対パスを手動で変更するのは、最も簡単ですが、あまり推奨されない方法です。元のパスを新しいパスに変更するだけです。たとえば、以前の絶対パスは:

/home/wwwroot/example.com/inc/config.php
ログイン後にコピー

でした。次に、このファイルを次の場所に移動する必要があります:

/home/wwwroot/newsite.com/inc/config.php
ログイン後にコピー

ファイルを参照していた元のコードを変更する必要があります:

require_once "/home/wwwroot/example.com/inc/config.php";
ログイン後にコピー

to :

require_once "/home/wwwroot/newsite.com/inc/config.php";
ログイン後にコピー

この方法の問題は、パスが多い場合、または Web サイトが複数の場所で参照されている場合、多くのコード変更が必要となり、非常に面倒なことです。さらに、どこかのパスを変更するのを忘れると、コードでエラーが発生します。

  1. 相対パスの使用

パスを手動で変更する場合と比較して、相対パスを使用する方が便利です。絶対パスを相対パスに変換することで、ファイルを別の場所に移動してもパスが間違わないようにすることができます。

この記事の冒頭の例を例に挙げると、次の方法で絶対パスを相対パスに変換できます。

$cur_path = dirname(__FILE__);
$target_path = '/home/wwwroot/newsite.com/inc/config.php';
$rel_path = str_replace($cur_path, '', $target_path);
if ($rel_path[0] == '/') {
    $rel_path = substr($rel_path, 1);
}
ログイン後にコピー

このコードは、$config_file の位置を計算します。現在のファイルを基準とした相対値。 $rel_path は相対パスです。$rel_path を使用してファイルを参照するだけです。

この方法の利点は、ファイルの場所や Web サイトのディレクトリ構造が変更された場合でも、コードは引き続き正常に実行できることです。

  1. 定数を使用する

Web サイトが複数の場所で同じパスを使用している場合、絶対パスの変更を容易にするために、パス。定数は、スクリプトの実行中は変化しない PHP の固定値です。

定数を定義する方法は非常に簡単で、define() 関数を使用するだけです。

define('ROOT_PATH', '/home/wwwroot/newsite.com');
ログイン後にコピー

この方法では、絶対パスの代わりに ROOT_PATH 定数を使用できます。たとえば、/config/config.php ファイルを参照する必要があります。このファイルを参照していた元のコードは

require_once "/home/wwwroot/newsite.com/config/config.php";
ログイン後にコピー

でした。これで、これを

require_once ROOT_PATH . '/config/config.php';
ログイン後にコピー

に変更できます。絶対パスの場合は変更する必要がある場合でも、ROOT_PATH 定数を変更するだけで済みます。

概要

PHP の絶対パスを変更するのは難しくなく、相対パスや定数を使用して手動で変更することで目的を達成できます。ただし、コードの保守性と読みやすさを考慮して、絶対パスではなく相対パスまたは定数を使用することをお勧めします。こうすることで、ファイルの場所が変更されてもコードは正常に実行されます。

以上がPHPの絶対パスを変更する方法(3つの方法)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート