0

現在、次のコードを使用してWebページにファイルを含めています。

require_once $_SERVER['DOCUMENT_ROOT'] . '/include/file.php';

ただし、システムを編集したので、ルートのデータファイルにURLを入力します。これにより、サイトの他の部分が機能し、別のディレクトリを使用できるようになります。

つまり、私はWebサイトでスプラッシュページを使用しています。ここでは、ルートがルートではなく/ directoryになっているため、データファイルのURLはhttp://www.domain.com/directoryになります。

したがって、私が解決する必要があるのは、URLを含むデータファイルの変数を使用して、この行をディレクトリにポイントする方法です。

ルート$_SERVER['DOCUMENT_ROOT']にないデータファイルの変数からデータを取得する必要があるため、無関係になります。

次のようなものである必要があります。

require_once (variable from file a few directories back) + absolute path to file;

ルートとは異なるディレクトリを使用してサイトを構築する必要がある場合は、このコード行も将来にわたって利用できるようにしたいと思います。

それが理にかなっていることを願っています!

4

2 に答える 2

2

を作成し、SITE_ROOT代わりにそれを使用します。そうすれば、ディレクトリを変更しても機能します。

define('SITE_BASE', '/directory/');
define('SITE_ROOT', $_SERVER['DOCUMENT_ROOT'] . SITE_BASE);

SITE_BASEその後、URI の作成に使用できます。

<a href="<?php echo SITE_BASE ?>subdir/">link</a>

SITE_ROOTシステム上のファイルにアクセスする場合:

require_once SITE_ROOT . 'include/file.php';
于 2011-09-26T22:28:09.463 に答える
0

include_pathファイルに設定することを検討しましたphp.iniか?たとえば、自分のphp.iniファイルにはがinclude_path = ".:/path/to/web/root"あります。これにより、ファイルを含めるときにファイルがどこにあるかを気にする必要がなくなります。

あなたの場合、あなたはそれをに設定したいと思うでしょうinclude_path = ".:/path/to/web/root/directory"。Webルートへのパスがわからない場合は、実行echo $_SERVER['DOCUMENT_ROOT'];して見つけてください。

php.iniこのソリューションは、その値を変更するだけですべてが適切に機能するため、「将来にわたって利用できる」ものです。

于 2011-09-26T22:29:57.760 に答える