パスと階層

絶対パス(フルパス)と相対パスって何?
一口にパスと言っても、表記にはいろいろあります。

 $logfile = './bbs.log';
 $logfile = 'bbs.log';
 $logfile = '/home/□□□/public_html/cgi-bin/bbs.log';
 $logfile = 'http://www.●●●.ne.jp/□□□/cgi-bin/bbs.log';

1番めと2番目のものは同じようなもので相対パスと呼ばれています。
(ただし、2番目に関しては、元からサーバーに設置されているファイルに関してはこの限りではありません)
そのファイルのあるディレクトリから見た、指定するファイルの位置とお考え下さい。

3番目のものは、一番上の階層のディレクトリのからのパスです。絶対パス、またはフルパスと呼ばれているものです。
4番目のものは、URL(もしくはアドレス)と呼ばれるもので、インターネット全体から見た、指定するファイルの場所です。同じサーバー内にあるもの以外のもの指定する際に使いますが、別に同じサーバー内にあっても(特に制作者から指定されていなければ)相対パスのかわりに使うことができます。

そのファイルを自分の家に、指定するファイルを友達の家に例えた場合、相対パスは自分の家から●件目、絶対パスはその友達の家そのものの住所を表します。




相対パスがよく分かりません。
以下のように構成されているpublic_htmlディレクトリの、bbs.cgiというファイルを例にとって、 相対パスと絶対パスの説明をします。

線で囲まれているのがディレクトリ名。左が上層、右が下層です。

public_html内のindex.htmlからiconディレクトリ内のindex.htmlを指定する相対パスは
./image/bbs/icon/index.html
です。
「./」はそのファイルのあるディレクトリを表しています。つまり同じディレクトリにある「image」ディレクトリを指し示します。

逆にiconフォルダ内のindex.htmlからpublic_html内のindex.htmlを指定する相対パスは
../../../index.html
です。
この「..」は、一つ上のディレクトリを表します。

cgi-bin内のbbs.cgiから見て、 public_html内のmenu.html../menu.htmlです。
同一ディレクトリにあるbbs.logは、./bbs.logまたはbbs.logです。
iconフォルダ内のmail.gif../image/bbs/icon/mail.gifです。

BACK to TOP