4

私の現在のドキュメントルートはこれです($_SERVER['DOCUMENT_ROOT']経由):

/var/www/html/clients/app/folder

1 つのフォルダーを生成する必要があります。

/var/www/html/clients/app

どうすればこれを行うことができますか?

私は過去にこれを尋ねました: 動的にパスを見つける、より良い方法はありますか?

ただし、機能しない次のシナリオがあります。

  • 実行されたスクリプトは、root/f1/f2/f3/f4/f5/file.php にあります。
  • このスクリプトには、root/f6/file2.php にある別のスクリプトが含まれています。

file2.php では、これを機能させるために次のコードが必要でした。

$base_path = dirname(realpath("../../../../do_not_remove.txt"));

理論的には、その場所に基づいて、次のようになるはずです。

$base_path = dirname(realpath("../do_not_remove.txt"));

実際には、このデータを渡すことができるグローバルが利用可能になります。ただし、この継承されたプロジェクトでは、必要な場所でこれを再利用しています。

更新 #1

答えに基づいて、これはうまくいくようです:realpath($_SERVER['DOCUMENT_ROOT']."/../../");

4

3 に答える 3

5

まあ、あなたが持っている可能性があります--$_SERVER['DOCUMENT_ROOT'] ."/../"あまりきれいに見えませんが

または、もう少し適切な方法があるかもしれません--dirname( $_SERVER['DOCUMENT_ROOT'] )これはうまくいくと思います

于 2012-10-18T19:46:43.747 に答える
3
$path = $_SERVER['DOCUMENT_ROOT']."/../";
于 2012-10-18T19:46:52.623 に答える
2

explore()、array_pop()、implode() の使用:

<?php

//$path = $_SERVER['DOCUMENT_ROOT'];
$path = "/var/www/html/clients/app/folder";
$tmp = explode("/", $path);
array_pop($tmp);
$path_up = implode('/', $tmp);
echo $path_up; //output: /var/www/html/clients/app

?>
于 2012-10-18T19:52:13.240 に答える