0

私は PHP の人ではありません。単純な Web サイトのグローバル ナビゲーション パーシャルを作成する必要がありますが、サイトのルート ディレクトリと複数のサブディレクトリから参照する必要があります。私の質問は、どの場所からでも機能するナビゲーション パーシャルでリンクを作成するにはどうすればよいですか?

試してみdirname(__FILE__)ましたが、それはサーバーのルートにまでさかのぼります。これが存在するサーバーのディレクトリ構造がどのようになるかはわかりませんが、ローカルでも開発できるようにしたいと考えています。

ここで何が欠けていますか?

更新 ありがとう Orangepill のdir(__FILE__)代わりに必要でしたdirname

4

1 に答える 1

0

通常、$_SERVER['DOCUMENT_ROOT']サイトのルートへのパスが何であるかがわかります。およびマジック定数は__FILE____DIR__絶対ファイルまたはディレクトリ パスを提供します。ドキュメント ルートに相対する絶対パスを作成するには、絶対ディレクトリ パスから document_root を削除する必要があります。

echo relativeToDocumentRootPath(__FILE__), "<br>", relativeToDocumentRootPath(__DIR__);

function relativeToDocumentRootPath($path) {
    $root = $_SERVER['DOCUMENT_ROOT'];
    $relative;

    if (!empty($root) && 0 === strpos($path, $root)) {
        $relative = substr($path, strlen($root));
    }else{
        trigger_error('Could not create relative path due to the absence of $_SERVER[\'DOCUMENT_ROOT\']', E_WARNING);
        $relative = $path;
    }

    return $relative;
}
于 2013-07-20T04:30:43.377 に答える