• ベストアンサー

PHPで、該当ファイルの一つ上のディレクトリ名を取得したいのですが、そ

PHPで、該当ファイルの一つ上のディレクトリ名を取得したいのですが、そのような関数はございますでしょうか? 例えば、該当のページが 「http://example.com/abc/top.php」 だった場合、 「abc」を文字列として取得したいです。 自分のファイル名を取得する時はbasenameという関数を使う所までは 分かったのですが、一つ上のディレクトリ名を取得する関数を探す事が 出来ませんでした。ご教授頂けると大変助かります。 宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • bm_hiro
  • ベストアンサー率51% (200/388)
回答No.2

既に #1さんの 回答したとおりですが、以下を実行してみて 結果を比較してみてください。 <? //$url = $_SERVER[PHP_SELF]; $url = "http://example.com/abc/top.php"; print basename($url); print "<hr>"; print dirname($url); print "<hr>"; print basename(dirname($url)); print "<hr>"; print_r(pathinfo($url)); print "<hr>"; ?>

noname#125049
質問者

お礼

取得出来ました!ありがとうございました!

その他の回答 (2)

noname#111181
noname#111181
回答No.3

URLからご質問のようなディレクトリを得たいのであれば、正規表現を使って以下のようにします。 --------------- $url = "http://example.com/abc/abc.php"; preg_match("/\/([^\/]*)\/[^\/]*$/", $url, $arr); echo $arr[1];

noname#125049
質問者

補足

説明が足らず申し訳ありません。 この「abc」を取る為に、ファイルまでの絶対パスや相対パスを 手入力で入れずに取得をしたいのですが方法はございませんでしょうか? 例えば、ファイル名だけを取得する場合であれば、 basename(__FILE__, '.php') だけで取得出来ますが、これと同じように 「上のディレクトリ名だけを取得する」 といった方法を知りたいのです。

  • BellBell
  • ベストアンサー率54% (327/598)
回答No.1

realpath("../"); として、サーバー上の絶対パス名を取得して、basenameで取り出す。 dirname()を使って取得したパス(ファイルのあるディレクトリのパス)、それをさらにdirname()に渡してファイルのあるディレクトリのあるディレクトリ(=1階層上のディレクトリ)のパスを取得するか。 ※やはりbasenameでディレクトリ名単体だけ取り出す。

関連するQ&A