31

確認のために、次を使用しています。

$_SERVER["DOCUMENT_ROOT"]

使用するのと同じ:/

HTMLで。

例えば。現在のドキュメントが次の場合:

folder/folder/folder/index.php

私は(HTMLで)roortから始めることができます:

/somedoc.html

PHPで同じことを行うには、次を使用する必要があります。

$_SERVER["DOCUMENT_ROOT"] . "/somedoc.html";

あれは正しいですか?それを行う簡単な方法はありますか?

4

4 に答える 4

40
<a href="<?php echo $_SERVER['DOCUMENT_ROOT'].'/hello.html'; ?>">go with php</a>
    <br />
<a href="/hello.html">go to with html</a>

これを自分で試してみて、まったく同じではないことを確認してください。

$_SERVER['DOCUMENT_ROOT']実際のファイルパスをレンダリングします(独自のサーバーとして実行されているコンピューター上で、C:/wamp/www/

HTML/は、サーバーのURLのルートをレンダリングします。私の場合は、localhost/

しかしC:/wamp/www/hello.htmllocalhost/hello.html実際には同じファイルです

于 2012-08-13T04:00:49.187 に答える
5

/パブリックhtmlフォルダーからWebサイトのルートを参照するだけです。DOCUMENT_ROOTWebサイトを含むサーバー上のフォルダーへのローカルパスを指します。

たとえば、マシンにEasyPHPをセットアップしています...

$_SERVER["DOCUMENT_ROOT"]が表示されますfile:///C:/Program%20Files%20(x86)/EasyPHP-5.3.9/wwwが、リンク先のファイルはすべて自分のフォルダ/に相対的です。www

サーバー上のファイルへの絶対パス(サーバーのルートから)を指定する場合は、を使用できますDOCUMENT_ROOT。Webサイトのルートからファイルへの絶対パスを指定する場合は、を使用し/ます。

于 2012-08-13T04:01:52.760 に答える
2

はいクライアント側のURLパスに相関するサーバー側のパス$_SERVER['DOCUMENT_ROOT']が含まれています。しかし、いいえ、それらは互換性がありません。 /

たとえば、サーバー側のパスをクライアント(HTML)側に送信してはならないため、これらは互換性がありません。の値は;で$_SERVER['DOCUMENT_ROOT']はありません。これは、サーバーがクライアントに表示する場所へ/のサーバーのローカルファイルパス/です。したがって、の値は、そのパスのローカルファイルがURLのクライアント側から到達できるサーバー上${$_SERVER['DOCUMENT_ROOT']}/images/thumbnail.png"の文字列である可能性があります/var/www/html/images/thumbnail.pnghttp://example.com/images/thumbnail.png

注:$_SERVER['DOCUMENT_ROOT']末尾は含まれません/

于 2018-11-11T07:33:04.603 に答える
-4

それを行う最も簡単な方法は、適切なサイト構造を持ち、それを定数として記述することです。

DEFINE("BACK_ROOT","/var/www/");
于 2012-08-13T04:09:32.067 に答える