以下の2つのどちらかは文脈からは読み取れません。
- ブラウザでアクセスした後にtest.phpを実行中…file_get_contents等でsample.cssを読み込む
- ブラウザでHTMLを読み込んだ際の「<link href="?????/sample.css">」
上記の2パターンのどちらかである場合、
必ずブラウザでアクセスしたフォルダが起点(カレントディレクトリ
)となります。
上のパターンである「ブラウザでアクセスした後にtest.phpを実行中…file_get_contents等でsample.cssを読み込む」ですが、
直接test.phpをブラウザでアクセスして実行した場合、
カレントディレクトリは「sample」となるので、
sample.cssのパスは1階層../
で登った後、「sample2/sample3/sample4/sample.css」と掘り下げていけば良いのです。
なのでパスは'../sample2/sample3/sample4/sample.css'
となります。
ところが、別のフォルダからinclude
等の機能を使ってtest.php
を呼び出した場合、
カレントディレクトリは「sampleとは限りません」。
ところがご安心を、PHPには便利な定数が用意されています。
モノは試しで下記を実行してみてください。
PHP
1<?php
2$css_file = file_get_contents(__DIR__.'../sample2/sample3/sample4/sample.css');
3echo $css_file;
この「_DIR_」はなんぞや?と思うかもしれませんが、
これはカレントディレクトリ関係無く、このファイルが格納されているディレクトリが起点となります。
自動的に定義される定数
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。