3

includeUbuntuサーバーでphpを使用してファイルを見つけるのに問題があります。

サイトの構造

/var/www/
     home/index.php
     include/header.php

home / index.phpinclude_once('/include/header.php')ファイルに以下を挿入しようとすると、機能しません。

ただし、これをに変更するとinclude_once('../include/header.php')正常に機能しますが、サイト全体で一貫性を保つために、これを許可することはできません。

これを修正する最良の方法は何ですか?

4

3 に答える 3

5

ドキュメントルートがである場合は/var/www/、次を使用できます。

include $_SERVER['DOCUMENT_ROOT'] . '/include/header.php';

通常、PHPはDOCUMENT_ROOT正しいものを取得するため、通常はそれに依存できます。

インクルードを実行しているスクリプトに関連するファイルをインクルードする場合は、次の操作を実行できます。

include dirname(__FILE__) . '/../include/header.php';
于 2012-09-12T21:03:28.417 に答える
2

先頭のスラッシュは絶対パスを示します。ほとんどのアプリケーションは、APP_ROOTこれらの問題を解決するために、サイクルの早い段階で定数または類似のものを定義します。

define('APP_ROOT', dirname(__FILE__));

その後、次のファイルを含めることができます。

include(APP_ROOT . '/includes/header.php');
于 2012-09-12T21:02:59.687 に答える
1

私は次のことを試みます

include_once($ _SERVER['DOCUMENT_ROOT']。'/include / header.php');

于 2012-09-12T21:04:36.870 に答える