このエントリーをはてなブックマークに追加

更新日: 2016年2月25日

実行時間: 0.0242

PATH(パス)ヘルパー

 PATH(パス)ヘルパーは「 system/helper/path_helper.php 」ファイルで、ローカルファイルシステムの ディレクトリパスをチェックする関数が定義されています。

PATH(パス)ヘルパーのロード

 「 CI_Loader 」クラスの「 helper() 」メソッドでロードします。

    $this->load->helper('path');

PATH(パス)ヘルパーの関数

set_realpath($path, $check_existance = FALSE)

 第一引数に、あるディレクトリの「相対パス」または、「シンボリックリンクパス」を指定すると そのディレクトリの絶対パスを返します。「絶対パス」を指定した場合は、そのまま「絶対パス」を返します。
(相対パスはドキュメントルートからの相対パスとして処理されます。)

 返されるパス文字列の末尾には「/ (スラッシュ)」が付加されます。
したがって、ディレクトリではなく、ファイルを指定するとおかしなことになります。

 第二引数に、TRUEを指定すると、第一引数で指定したディレクトリが存在するか チェックします。
 存在しなかった場合は、CodeIgniterの共通関数「show_error()」 関数が実行されクライアントにエラーページ(HTTP Code: 500)を表示します。

    $this->load->helper('path');

    $path = '../application';
    $real_path = set_realpath($path);
    echo $real_path;
    // /var/www/vhosts/myapp/application/
    $this->load->helper('path');

    $path = '../notdirectory';
    // HTTP 500 エラー
    // 'Not a valid path: ../notdirectory'

 ファイルパスを指定した場合、返されるパス文字列の末尾から「/ (スラッシュ)」を 取り除く
必要があります。

    $path = '/etc/passwd';
    $real_path = set_realpath($path);
    echo $real_path;
    // /etc/passwd/
    $real_path = rtrim($real_path, '/');
    echo $real_path;
    // /etc/passwd

 また、第一引数にファイルパスを指定した場合は、第二引数にTRUEを 指定すると常にエラー
となります。

    $path = '/etc/passwd';
    $real_path = set_realpath($path, TRUE);
    // HTTP 500 エラー
    // 'Not a valid path: /etc/passwd'