$_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ファイルの場所がわからないまま、画像フォルダーへのパスを取得するにはどうすればよいですか?
この質問を読んでgooglesurfを続けた後、今日見つけたもの:
https://docs.joomla.org/How_to_find_your_absolute_path
<?php
$path = getcwd();
echo "This Is Your Absolute Path: ";
echo $path;
?>
私のために働く
実行しているファイルはどこにありますか?パブリックhtmlフォルダーにある場合は、echo dirname(__FILE__);
を実行できます
show_images.php
がimages
フォルダーにあり、サイトのルートがpublic_html
であると仮定します。
echo dirname(__DIR__); // prints '/home/public_html/'
echo dirname(__FILE__); // prints '/home/public_html/images'
検索したいディレクトリに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 => "../../../"
これはあなたが望むものですか??
何らかの構成情報が必要な場合は、 phpinfo()
を使用できます。
これは非常に古いですが、私はそれに出くわし、これは私のために働いた。
<?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/
?>
Dirnameでdirnameを使用して、目的の場所に移動することもできます。
使用例:
Joomlaの場合、モジュールは常に_/public_html/modules/mod_modulename/
_にインストールされます
したがって、モジュールのフォルダー内のファイル内から、任意のサーバーのJoomla install-rootにアクセスするには、次を使用できます:$path = dirname(dirname(dirname(__FILE__)));
プラグインが常に_wp-content/plugins/
_にあるWordpressでも同じことが言えます
これが誰かを助けることを願っています。
__FILE__
から絶対パスを見つけるpreg_replace関数を使用すると、ホームユーザーであれば簡単に見つけることができます。ここに私のコードを短くします:
$ path_image_you_want = preg_replace( '#/ public_html /([^/]+?)/.*#'、 '/ public_html/$ 1/images "、
__FILE__
);
<?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/