web-dev-qa-db-ja.com

public_htmlフォルダーへの絶対パスを取得する方法は?

$_SERVER['DOCUMENT_ROOT']

返す

/usr/local/Apache/htdocs/

取得する方法はありますか

/home/user/public_html/

問題は、public_htmlフォルダーまたはpublic_htmlフォルダーのサブフォルダーにあるスクリプトを作成する必要があることです。スクリプトは、アップロードされたファイルをpublic_htmlディレクトリ内のフォルダー(画像など)に保存する必要があります。言い換えれば、私のファイルはtest.phpであり、そのパスは

/home/user/public_html/test/test.php. 

そして、フォルダーがあります

/home/user/public_html/images 

test.php経由でアップロードされたファイルを保存する必要があります。 test.phpファイルが実行される場所がわかりません。たとえば、パスにあります

/home/user/public_html/test/another-dir/test.php

Test.phpファイルの場所がわからないまま、画像フォルダーへのパスを取得するにはどうすればよいですか?

24
Can't Tell

この質問を読んでgooglesurfを続けた後、今日見つけたもの:

https://docs.joomla.org/How_to_find_your_absolute_path

<?php
$path = getcwd();
echo "This Is Your Absolute Path: ";
echo $path;
?>

私のために働く

37

実行しているファイルはどこにありますか?パブリックhtmlフォルダーにある場合は、echo dirname(__FILE__);を実行できます

21
Jim Rubenstein

show_images.phpimagesフォルダーにあり、サイトのルートがpublic_htmlであると仮定します。

echo dirname(__DIR__); // prints '/home/public_html/'
echo dirname(__FILE__); // prints '/home/public_html/images'
11
Jasom Dotnet

検索したいディレクトリにanyfileを置きます。この場合、public_htmlに「root」を置きます。

/home/user/public_html/root <- note that 'root' is not a folder (you can use root.txt if u want)

そして、この関数を使用します

function findThis($get){
    $d = '';
    for($i = 0; $i < 20; $i++){//this will try 20 times recursively on upper folder
        if(file_exists($d.$get)){
            return $d;
        }else{
            $d.="../";
        }
    }
}

呼び出して値を取得します

$pathToRoot = findThis('root');

そして、それは戻ります。例えば、phpスクリプトのディレクトリは

/home/user/public_html/test/another-dir/test.php

したがって、$ pathToRootは

$pathToRoot => "../../../"

これはあなたが望むものですか??

3
Irman Ahmad

何らかの構成情報が必要な場合は、 phpinfo() を使用できます。

3
daalbert

好奇心から、上記のフォルダーのURLを使用してみませんか?

http://www.mysite.com/images

フォルダーの場所が変更されないと仮定すると、それが最も簡単な方法です。

2
Sylverdrag

これは非常に古いですが、私はそれに出くわし、これは私のために働いた。

<?php
//Get absolute path
$path = getcwd();
//strip the path at your root dir name and everything that follows it
$path = substr($path, 0, strpos($path, "root"));
echo "This Is Your Absolute Path: ";
echo $path; //This will output /home/public_html/
?>
1
vinylDeveloper

Dirnameでdirnameを使用して、目的の場所に移動することもできます。

使用例:

Joomlaの場合、モジュールは常に_/public_html/modules/mod_modulename/_にインストールされます

したがって、モジュールのフォルダー内のファイル内から、任意のサーバーのJoomla install-rootにアクセスするには、次を使用できます:$path = dirname(dirname(dirname(__FILE__)));

プラグインが常に_wp-content/plugins/_にあるWordpressでも同じことが言えます

これが誰かを助けることを願っています。

0

__FILE__から絶対パスを見つけるpreg_replace関数を使用すると、ホームユーザーであれば簡単に見つけることができます。ここに私のコードを短くします:

$ path_image_you_want = preg_replace( '#/ public_html /([^/]+?)/.*#'、 '/ public_html/$ 1/images "、__FILE__);

0
NSD
<?php

    // Get absolute path
    $path = getcwd(); // /home/user/public_html/test/test.php.   

    $path = substr($path, 0, strpos($path, "public_html"));

    $root = $path . "public_html/";

    echo $root; // This will output /home/user/public_html/
0
antelove