2

私はこれまで多くのスレッドを検索しましたが、解決策を見つけることができないようです。PHPスクリプトの1つで、サーバードキュメントのルートを取得しようとしていますが、取得する値が完全ではなく、ドメインフォルダーが欠落しているだけです。ホスティングやその他の共有が原因だと思います。

これが私が現在使用している方法です:

$root = realpath($_SERVER["DOCUMENT_ROOT"]);

そして私が得る道は次のようなものです:

/home/content/01/0151247/html

私はそれが次のようになるべきであることを知っていますが:

/home/content/01/0151247/html/mydomain

SCRIPT_NAMEと比較すると、パスにmydomainが表示されていることがわかります。

誰かが私を導いてくれることを願っています。

コミュニティについて同じ質問を何千回も質問してくれてありがとう、そして申し訳ありません。私はここから実際に物事を試しましたが、これまでのところ何も役に立ちません。

アップデート

残念ながら、DIRでインデックスファイルを使用することはできません。これはワードプレスのセットアップであり、ワードプレス機能を含む別のフォルダーで作業していますが、そのためにはdocument_rootが必要です。それが役立つなら。

アップデート

どうやら次の方法で私のケースは解決しました、多分それはいつか誰かを助けるでしょう:

realpath($_SERVER["SUBDOMAIN_DOCUMENT_ROOT"]);

基本的に、サーバーのセットアップとドメインがサブドメインとして構成されているためです。

参加してくれたすべての人に感謝します。

4

3 に答える 3

3

PHP 5.3より前では、パスが必要なディレクトリにファイルを配置し、定数を定義できます。

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

5.3以降は、次のことができます。

define('ROOT_DIR', __DIR__);

config.phpこれは、アプリケーションが実行されるたびに含まれるある種のものになるという考えです。

マジック定数ドキュメント

于 2011-12-05T22:08:36.720 に答える
1

アップデート

構成ファイルでは、DOCUMENT_ROOT変数を追加するだけです。

$_SERVER['DOCUMENT_ROOT'] = $_SERVER['DOCUMENT_ROOT'] . '/mydomain';

そして、それはあなたのためにそれの世話をする必要があります。

古いソリューション

DOCUMENT_ROOTサーバーによって設定される環境変数です。したがって、これが共有ホスティング上にある場合、変更することはできません。別の方法として、独自の定数を設定することもできます。そのため、configページに含まれているタイプファイルでは、次のようなことができます。

define('DOCUMENT_ROOT', $_SERVER['DOCUMENT_ROOT'] . '/mydomain');

そして、の代わりにその定数を使用し$_SERVER['DOCUMENT_ROOT']ます。他のオプションはあなたのホストに連絡してそれについて尋ねることです、多分それは彼らの側の見落としであり、彼らはそれを修正するでしょう。

編集

おそらく他の__DIR__人が投稿したように使用するのがより良い方法です。なぜなら、はDOCUMENT_ROOT異なるアイテムに設定でき、少なくとも__DIR__毎回正確なディレクトリを取得する必要があるからです。

于 2011-12-05T22:07:49.303 に答える
0

個人的には、PHPでフォルダーのルートを取得するために、インデックスファイルでこれを使用します。

define('ROOT', dirname(__FILE__));     // __DIR__ will work under PHP 5.3
于 2011-12-05T22:08:01.903 に答える