実行中のスクリプトの親ディレクトリを取得する
2023-09-09 07:51:59
質問
PHP で、最もクリーンな方法は何でしょうか? 親 ディレクトリを取得する最もきれいな方法は何でしょうか?私が持っていると仮定します。
$_SERVER['SCRIPT_NAME'] == '/relative/path/to/script/index.php'
あるいはただ
$something_else == '/relative/path/to/script/'
そして、私は
/relative/path/to/
をスラッシュが適切に挿入された状態で取得する必要があります。何かいい方法はないでしょうか?ワンライナーが望ましいです。
EDIT
wwwのルートからの相対パスを取得したいのですが。
dirname(__FILE__)
は私にファイルシステム内の絶対パスを与えるので、それは動作しません。
$_SERVER['SCRIPT_NAME']
はwwwのルートで'開始'します。
どのように解決するのですか?
スクリプトが
/var/www/dir/index.php
にある場合、次のように返されます。
dirname(__FILE__); // /var/www/dir
または
dirname( dirname(__FILE__) ); // /var/www
編集
これは、app_rootから相対パスを決定するために多くのフレームワークで使用されているテクニックです。
ファイルの構造です。
/var/ www/ index.php サブディレクトリ library.php
index.phpは私のディスパッチャ/ブーストラップファイルで、すべてのリクエストはここにルーティングされます。
define(ROOT_PATH, dirname(__FILE__) ); // /var/www
library.phpは特別なディレクトリにあるファイルで、アプリのルート(/var/www/)からの相対パスを決定する必要があります。
$path_current = dirname( __FILE__ ); // /var/www/subdir
$path_relative = str_replace(ROOT_PATH, '', $path_current); // /subdir
相対パスを計算するためのもっと良い方法があるはずです。
str_replace()
を使用した方が良い方法があるかもしれませんが、アイデアを得ることができます。
関連
-
[解決済み】phpのob_start()の使い道は?
-
[解決済み] PHP - ストリームを開くのに失敗しました : そのようなファイルまたはディレクトリがありません。
-
[解決済み] PHPの配列を別の配列にコピーする関数はありますか?
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み] YouTube APIからYouTubeビデオのサムネイルを取得する方法を教えてください。
-
[解決済み] PHPのエラーを表示させるにはどうしたらいいですか?
-
[解決済み] Pythonでディレクトリが存在するかどうかを確認する方法
-
[解決済み] 現在のファイルのディレクトリのフルパスを取得するにはどうすればよいですか?
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】Git リポジトリに空のディレクトリを追加するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] PHP & MySQL: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given [重複] PHP & MySQL: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given.
-
[解決済み] コマンドの同期がとれていない。
-
[解決済み】SQLSTATE[42000]: 構文エラーまたはアクセス違反が発生しました。1064 SQL 構文にエラーがあります - PHP - PDO [重複]。
-
[解決済み】予期せぬ例外。SQLSTATE[HY000] [1045] Access denied for user ****@'localhost' (using password: YES)
-
[解決済み】「セッションキャッシュリミッターを送信できません - ヘッダーはすでに送信されています」【重複】。
-
[解決済み】PHP 7.2 - Warning: count(): パラメータは配列かCountableを実装したオブジェクトでなければならない [解決済み]
-
[解決済み】foreach()に与えられた引数が無効です。)
-
[解決済み】Chrome net::ERR_INCOMPLETE_CHUNKED_ENCODING エラーが発生しました。
-
[解決済み】未定義の関数mysql_query()をLoginで呼び出す【重複
-
MacでPHPを実行した際に、メモリサイズが134217728バイトも消費される問題の解決方法について