ホームページ  >  記事  >  バックエンド開発  >  PHPの相対パスの問題

PHPの相対パスの問題

巴扎黑
巴扎黑オリジナル
2016-11-22 16:51:231248ブラウズ

PHP でファイルを要求したりインクルードしたりする場合、主に相対パスが使用されますが、これは頭痛の種です。 │

│ │

│ └2.php

└index.php

問題: 1.php では、2.php ファイルを導入するために include ("../B/2.php") が使用されています。 B ディレクトリ;

Index.php では、A ディレクトリに 1.php ファイルを導入するために使用されます

もちろん、実行時に問題が発生します。 ../B/2.php ファイルが見つかりません。

1 つの原則を覚えておいてください。すべての include ステートメントは最終的に、インクルード ファイル パスに基づいてインクルード パスに変換されます。__FILE__ や $_SERVER['DOCUMENT_ROOT'] などの基本パスをすべてのパスの参照として使用することをお勧めします。 __

FILE__: (さまざまな状況に適しています)

設定ファイルでサイトのルート ディレクトリを設定します

define( "WEB_ROOT ", dirname(__FILE__) );

設定ファイルは Web サイトのルート ディレクトリに配置されます

他のファイルには設定ファイルが含まれます。

他のファイルを含める場合は、WEB_ROOT に従って配置するだけです。

require_once( WEB_ROOT . "/a.php " );

$_SERVER['DOCUMENT_ROOT']、非仮想ホスト (エイリアス) の状況に適しています

Php コード

<?php  
if (!defined("WETSITE_BASE_DIR"))  
define("WETSITE_BASE_DIR", $_SERVER[&#39;DOCUMENT_ROOT&#39;].&#39;/Clare/&#39;);      
require_once(WETSITE_BASE_DIR.&#39;includes/global.inc.php&#39;);  
?>

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