2012-02-10 14 views
0

私はPHPでインストールスクリプトを書いています。私のアプリケーションの一部は、パブリックフォルダの1つ上の階層にあるフォルダにインストールされている可能性があります。通常、パブリックフォルダは「public_html」と呼ばれますが、必ずしもそうであるとは限りません。 PHPを使用してルートパブリックフォルダの名前やパスを簡単に見つける方法はありますか?PHPを使用してパブリックフォルダを見つける方法は?

+2

どのようにあなたはそれでも存在する場合、スクリプトは常に、そのフォルダにアクセスする必要があります知っていますか?いずれにせよ、 '../'だけを使用してください。 – Brad

+0

パーミッションに関しては真ですが、私はそれを別々に扱います。 ../は、インストールスクリプトがサブドメインで実行されていると動作しないことがあります。サブドメインは、しばしばpublic_html/subdomain /のようなサイトルートを持っています。 ../を使用すると私はpublic_htmlになりますが、私は1レベル上に移動する必要があります。 – igorilla

答えて

3

Try $_SERVER['DOCUMENT_ROOT']。 (documentation

上記のディレクトリを取得する場合は、dirnameを使用できます。

Bradにはポイントがあります。スクリプトがそのディレクトリにアクセスできない可能性があります。

+0

私は彼がdocルートの上のフォルダを望んでいると思う。 – Brad

+0

Webルートの上にあるフォルダに書き込むことができるようにするには... $ levelUp = dirname($ _ SERVER ['DOCUMENT_ROOT']); if(is_writable($ levelUp)){...} ' – rdlowrey

+0

サイトがサブドメイン上にあるとき、$ _SERVER ['DOCUMENT_ROOT']は私に/ home1/user/public_html/subdomainのようなものを与えます。そして、public_htmlは別のサーバで別のものと呼ばれることがあります。 – igorilla

0
  1. $_SERVER['DOCUMENT_ROOT']は、最大public_htmlへの完全なパスを提供し、あなたは「/」スラッシュで爆発し、爆発し、配列の最後のインデックスを取得することができます。
  2. 実際のファイル名がわからない場合は、realpathと引数 "../"を使用することもできます。これにより、あなたは完全な親パスpublic_htmlを返します。

・ホープ、この二つのうちの一つは、あなたのために動作します:)

+0

ありがとうございますが、私のインストールスクリプトがどこから実行されているのか分かりません。それはpublic_html/install.phpかもしれませんが、public_html/subfolder/install.phpからのものでもあります。それらの2つの場合、$ _SERVER ['DOCUMENT_ROOT']は私に異なる結果を与えます。どちらのパスでも "public_html"を探すことはできません。なぜなら、このディレクトリは "www"のような別の名前で呼ばれるかもしれないからです。 – igorilla

関連する問題