U-style PHP独学日記  Since2001 メインメニューに戻る PHPメニューに戻る
タイトルファイルの存在の確認
文書管理番号 作成日 分類1 分類2 キーワード

PHP0025

2004-02-20   file_exists

いよいよファイルに関する操作の学習です。まずはじめに本日はファイルが存在するかしないかを検出する関数を学習します
file_existsは戻り値をtureかfalseで返します。通常はその戻り値の情報を使って処理の続行や中止などを判断するようです。

file_exists(ファイル位置)

<?
        //file_exists関数
        
        echo("ファイルの直接指定<br>");
        if(file_exists("/var/www/html/test/test.test"))
        {
                echo("処理1ファイルは存在します<br>");
        }
        else
        {
                echo("処理1ファイルは存在しません<br>");
        }
        
        echo("変数にファイルのありかをいれて利用<br>");
        $test1 = "/var/www/html/test/test.test";
        if(file_exists($test1))
        {
                echo("処理1ファイルは存在します<br>");
        }
        else
        {
                echo("処理1ファイルは存在しません<br>");
        }
        
        //参照権限がないファイルの参照
        echo("パーミッションが指定されていない位置への参照<br>");
        $test2 = "/home/test/test.test";
        if(file_exists($test2))
        {
                echo("処理2ファイルは存在します<br>");
        }
        else
        {
                echo("処理2ファイルは存在しません<br>");
        }
        //一応WWW以下しか参照できないようになっているのだろうか?
        // 自己res:04-02-20WWW以外も参照できる
?>
実行結果

まずはじめに戻り値を表示してみました
成功した場合の戻り値は「1」のようです。

次にファイル名を直接記述したものと変数に代入して記述したものを実行しました。問題なく動きました。

最後にパーミッションが許されていない部分へのアクセスをしたところこちらはfalseが帰ってきました。アクセスができない部分へのファイルの存在チェックはファイル無しとみなされるようです。ここは注意しなければいけません。

補足ですがWWW以外のディレクトリにもアクセスできるようです。この点もセキュリティを考えるときには考慮に入れないといけないと思いました。

本日の参考文献

  •  MySQL&PHPでつくるWebデータベース Spencer K Ogawa著 エーアイ出版
  •  http://www.php.net/manual/ja/