PATH(パス)ヘルパー
PATH(パス)ヘルパーは「 system/helper/path_helper.php 」ファイルで、ローカルファイルシステムの ディレクトリパスをチェックする関数が定義されています。
PATH(パス)ヘルパーのロード
「 CI_Loader 」クラスの「 helper() 」メソッドでロードします。
PATH(パス)ヘルパーの関数
set_realpath($path, $check_existance = FALSE)
第一引数に、あるディレクトリの「相対パス」または、「シンボリックリンクパス」を指定すると
そのディレクトリの絶対パスを返します。「絶対パス」を指定した場合は、そのまま「絶対パス」を返します。
(相対パスはドキュメントルートからの相対パスとして処理されます。)
返されるパス文字列の末尾には「/ (スラッシュ)」が付加されます。
したがって、ディレクトリではなく、ファイルを指定するとおかしなことになります。
第二引数に、TRUEを指定すると、第一引数で指定したディレクトリが存在するか
チェックします。
存在しなかった場合は、CodeIgniterの共通関数「show_error()」
関数が実行されクライアントにエラーページ(HTTP Code: 500)を表示します。
$path = '../application';
$real_path = set_realpath($path);
echo $real_path;
// /var/www/vhosts/myapp/application/
$path = '../notdirectory';
// HTTP 500 エラー
// 'Not a valid path: ../notdirectory'
ファイルパスを指定した場合、返されるパス文字列の末尾から「/ (スラッシュ)」を
取り除く
必要があります。
$real_path = set_realpath($path);
echo $real_path;
// /etc/passwd/
$real_path = rtrim($real_path, '/');
echo $real_path;
// /etc/passwd
また、第一引数にファイルパスを指定した場合は、第二引数にTRUEを
指定すると常にエラー
となります。
$real_path = set_realpath($path, TRUE);
// HTTP 500 エラー
// 'Not a valid path: /etc/passwd'