1

再度質問して申し訳ありませんが、本当に助けが必要です。root/lib に header.php があり、同じディレクトリに header_sub.php が含まれています。通常、ルート内のファイルは、次のコードでそれらを直接含めることができます。

include_once('lib/header.php');

しかし、これらを使用すると、サブディレクトリ/blogにexample.phpがあります

include_once(../'lib/header.php');  or 
include_once($_SERVER['DOCUMENT_ROOT'].'/lib/header.php');  or 
include_once(dirname(__FILE__).'/lib/header.php');

header_sub.php が正しくインクルードされません。

header.php と header_sub.php を変更せずに含める方法はありますか?

一部の団体は、これらを使用することを提案しました:

$oldcwd = getcwd(); // Save the old working directory
    chdir("../"); // Moves up a folder, so from /blog to /
    include("header.php"); // Include the file with the working directory as if the header file were being loaded directly, from it's folder
    chdir($oldcwd); // Set the working directory back to before

ただし、現在の url が chdir() の後にルート ディレクトリであることはわかりますが、まだこのルート/ブログ/ライブラリが含まれています......

4

1 に答える 1

2

必要なファイルへのパスは、ファイルを呼び出すかどうかによって異なります。例:

/rootファイルインの呼び出し中/root->ファイルinclude_once('header.php');
インの呼び出し中->ファイル インの呼び出し中 - >ファイル インの呼び出し中->ファイル インの呼び出し中->/root/root/libinclude_once('lib/header.php');
/root/lib/rootinclude_once('../header.php');
/root/blog/root/libinclude_once(../lib/'header.php');
/root/blog/css/root/libinclude_once(../../lib/'header.php');

このようにすると、すべてのパスが相対パスになり、ルート フォルダーを変更してもすべてが機能します。

もう 1 つのオプションは、「common.php」または「include.php」という名前のファイルがあり、いくつかのフォルダーのパスを定義することです。これは、サイト ディレクトリに多数のサブ フォルダーがある場合に便利です。

于 2013-06-24T10:37:44.157 に答える