ルートサイトの上の独自のディレクトリにいくつかのサブドメインがあり、ルートディレクトリにアセットフォルダがあります。例えば:
/
/assets/
/forums/
/blog/
ルートディレクトリとサブディレクトリの両方のphpページでrequire()ファイルを作成しようとしています。たとえば、assets/include/form.phpは、ルートディレクトリのindex.phpとindex.phpの両方にrequired()です。フォーラムのディレクトリ。ただし、form.php内には、includeディレクトリに含まれる別のファイルを取得しようとする別の要件があります。
このform.php内に、ルートディレクトリのindex.phpとフォーラムディレクトリのindex.phpの両方で機能するファイルを要求する方法を見つけられないようです。
ルートディレクトリから始まるファイルを明示的に要求できる方法はありますか?
これを実現するにはいくつかの方法があります。
form.php
_からの相対パスを使用_require_once __DIR__ . '/otherfile.php';
_
PHP 5.2以前のバージョンを使用している場合は、___DIR__
_の代わりにdirname(__FILE__)
を使用できます。マジック定数の詳細については こちら をご覧ください。 。
$_SERVER['DOCUMENT_ROOT']
_変数を使用するこれはドキュメントルートへの絶対パスです:Windowsでは_/var/www/example.org/
_または_C:\wamp\www\
_。
ドキュメントルートは、ルートレベルのファイルがあるフォルダーです。 http://example.org/index.php は_$_SERVER['DOCUMENT_ROOT'] . '/index.php'
_にあります
使用法:_require_once $_SERVER['DOCUMENT_ROOT'] . '/include/otherfile.php';
_
これは、非常に単純なものであれば、おそらくアプリケーションにとって少しやり過ぎになるでしょう。
PHPがrequire()
またはinclude()
を使用するときにファイルを検索するディレクトリを設定することもできます。チェックアウトset_include_path()
ここ 。
使用法:_require_once 'otherfile.php';
_
注:
require()
内のURLの使用を提案する回答がいくつかあります。 PHPファイルはインクルードされる前に解析されるため、これはお勧めしません。HTMLファイルまたはPHPスクリプトがHTMLを出力する場合、これは問題ありませんが、そこにクラス定義しかない場合、空の結果が得られます。
1レベル上の使用の場合:
include('../header.php');
2レベル上の場合:
include('../../header.php');
詳細については、次のURLをご覧ください。 http://forums.htmlhelp.com/index.php?showtopic=2922
たぶん、これは正しいトピックではなく、正しい使い方ではないかもしれませんが、誰かを助けるかもしれません。絶対パスからメニューにリンクを作成したかったのですが、ディレクトリからディレクトリにジャンプしていて、パスがノンストップで変化していたため、ベースディレクトリに修正したかったのです。
したがって、サブフォルダに移動するために「../」を使用する代わりに(私は../../../に移動する必要がある多くを知らなかったので)、リンクを_<a href='/first_dir/second_dir/third_dir//..'>
_と書きました。 _<img src='/first_dir/second_dir//../logo.svg'>
_でも機能します。残念ながら、これはrequire_once()
では機能しません。 PHP 7
だから... pgm1.phpとpgm1.phpの両方でこれを使うことができます。
INCLUDEが機能します!
function rURI($p){
for($w='',$i=1;$i<(count(explode('/',$_SERVER['PHP_SELF']))-1);$i++,$w.='../');return
$w.$p; }
rURI( 'dirA/inc/Xpto.php');が必要//ルートからのパス
2つのソリューションがあります。完全なURLを使用することもできます。たとえば、ファイルが「lib」ディレクトリにある場合は、次のように使用できます。require_once( ' http://www.example.com/lib/myfile.php ')
または
$_SERVER['DOCUMENT_ROOT']
PHPの関数ですが、これは常にばかげているわけではありません。