0

このコードをローカルホストで実行すると

$root = $_SERVER['DOCUMENT_ROOT'];
echo "Doc root : $root <br />";

次のように応答します。

Doc root : C:/wamp/public_html/ 

リモートサーバーで同じコードを実行すると、次のように応答します。

Doc root : /home/setine5/public_html

末尾に「/」がないことに注意してください

localhost とリモート サーバーの両方で同じ PHP を参照する方法を見つけようとしていますが、スラッシュがないために参照できません。

これは通常どのように行われますか?

4

2 に答える 2

1

$_SERVER['DOCUMENT_ROOT']末尾にスラッシュが含まれているかどうかは、事前にわかりません。環境によって異なります。ほとんどの場合、末尾に はありませんが/、Windows では末尾のスラッシュが問題を引き起こします。

ここでの解決策は、Dave が示唆したように、末尾のスラッシュが存在しない場合は追加することです。

$_SERVER['DOCUMENT_ROOT'] = sprintf('%s/', rtrim($_SERVER['DOCUMENT_ROOT'], '/'));

別の解決策:

$_SERVER['DOCUMENT_ROOT'] .= (substr($_SERVER['DOCUMENT_ROOT'], -1) == '/')?'':'/';

お役に立てれば!

于 2013-07-22T03:45:54.663 に答える