PHPの現在のディレクトリ取得方法を学ぼう!一目でわかる簡単解説

PHPで開発をすすめていると、PHPファイルの場所を知りたい場合もあると思います。

ftp転送をするためにディレクトリを知りたい場合などもあるでしょう。

本日はそんな悩みを解決するために以下の内容でお話をしたいと思います。

【基本】ディレクトリの基本
【実践】ディレクトリを取得
【応用】様々なパスの取得

わかりやすく解説しますので、最後まで読んで頂けると幸いです。

ディレクトリについて

まず、ディレクトリの場所を表すディレクトリパスの種類についておさらいしましょう。

表示方法は種類がありますので、自分が取得したいパスの種類を明確にしておきましょう。

絶対パス

例えばOSがWindowsの場合以下のような表示になります。

linux系の場合は以下のような表示になります。

これらは絶対パスと呼ばれるものです。

絶対パスは、最上位のディレクトリから表示したパスです。

Windowsの場合は【ドライブ名】から、Linuxの場合は【/】から始まります。

相対パス

参照している場所から見て、どこにあるのかを示すパスを相対パスと言います。

Windowsで、現在いるフォルダ(C:\xampp\htdocs)から、(C:\xampp\test.php)一つ上の階層のファイルを示す場合は以下です。

linux系で、現在いるフォルダ(/var/lib/mysql)から、(/var/lib/test.php)一つ上の階層のファイルを示す場合は以下です。

一つ上の階層は【..】で表します。

同階層の場合は【.】で表します。

フルパス

Webサーバ(Apache)などのドキュメントルートを表します。

ドキュメントルートは、Webサーバの設定によって変わります。

表示としては、絶対パスと同じで最上位のディレクトリからのパスが表示されます。

現在のディレクトリ名を取得

それでは、現在のディレクトリ名を取得する方法を解説していきます。

get_dir.phpを以下のように作成します。

※筆者の環境はWindowsで、C:\xampp\htdocs配下にget_dir.phpを作成しました。

__FILE__で、実行しているPHPファイルの、ファイル名を含めたパスを取得します。

②画面に①で取得したパスを表示させます。

dirnameで①で取得したパスから、ファイル名だけ削除します。

④画面にパスを表示させます。

■画面表示結果

現在のディレクトリパスだけを表示させる事ができました。

他にも、getcwd関数を使う方法もあります。

get_dir.phpを以下のように変更します。

⑤getcwdの結果を画面に出力するように修正します。

■画面表示結果

④で表示している内容と同じく、現在のディレクトリパスのみ表示されている事が分かります。

色々なパスの取得

それでは最後にディレクトリのパス以外のパスを取得する方法をお話します。

ファイル名のみを取得
拡張子を外したファイル名のみ取得
相対パスから現在のディレクトリを取得

get_dir.phpを以下のように変更します。
※表示数が多くなったので、表示列に番号を振りました。

⑥ファイル名のみを取得する場合は、pathinfo関数を使って取得します。

第一引数にパス情報、第二引数に、PATHINFO_DIRNAME、PATHINFO_BASENAME、PATHINFO_EXTENSION、PATHINFO_FILENAMEの4つのいずれかを指定します。

ファイル名のみの場合はPATHINFO_BASENAMEを第二引数に指定します。

⑦ファイル名のみを取得する場合も、pathinfo関数を使って取得します。

ファイル名のみの場合はPATHINFO_FILENAMEを第二引数に指定します。

相対パスから現在のディレクトリを取得する事も出来ます。

まず、realpath関数に相対パスを渡して全体のパスを取得します。

そしてdirname関数を使って、親の全パスを取得するのです。

realpath関数で取得したパスも表示してみました。

■画面表示結果

まとめ

今回はPHPで現在のディレクトリ情報を取得できる方法を解説しました。

取得できるディレクトリ情報にも種類があります。

自分がどの情報が必要なのかを明確にして最適な方法で取得してください。

それでは、また。

LINEで送る
Pocket

最短でエンジニアを目指すなら侍エンジニア塾

cta_under_bnr

侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

無料体験レッスンの詳細はこちら

書いた人

つぶらや

つぶらや

独学PG&SE、東京在住30代女性。
誰でもプログラマーになれるがモットーで、わかりやすい記事を目指しています。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説