PHPのis_readable()関数の使い方を徹底解説!ファイルの読み取り可否を判定する方法
PHPのis_readable()関数は、指定したファイルやディレクトリが「読み取り可能」であるかどうかをチェックするための関数です。ファイル操作を行う前の事前確認として非常に便利な関数であり、エラーの発生を未然に防ぐことにも役立ちます。
is_readable()関数とは
is_readable()関数は、対象となるファイルまたはディレクトリが存在し、かつ読み取り権限がある場合に TRUE を返します。逆に、ファイルやディレクトリが存在しない場合、または読み取り権限がない場合は FALSE を返します。
基本構文
is_readable(file_path)
パラメータ(引数)
file_path − 読み取り可能かどうかを調べたいファイルのパスを指定します。相対パスでも絶対パスでも指定できます。
戻り値
is_readable()関数の戻り値は以下の通りです。
- ファイルまたはディレクトリが存在し、読み取り可能な場合:TRUE
- ファイルまたはディレクトリが存在しない場合、あるいは読み取り不可の場合:FALSE
使用例1:シンプルな読み取り判定
まずは基本的な使い方を見てみましょう。ファイル「new.txt」が読み取り可能かどうかを判定するサンプルコードです。
<?php
$file_path = "new.txt";
if(is_readable($file_path)) {
echo ("Readable!");
} else {
echo ("Not readable!");
}
?>
出力結果
Not readable!
この例では「new.txt」が存在しないため、「Not readable!」と表示されます。
使用例2:読み取り可能な場合にファイル内容を表示する
次に、実用的な例として、ファイルが読み取り可能であればその内容も表示するコードを紹介します。
ここでは、以下の内容が書かれた「demo.txt」というファイルを用意します。
This is demo text in demo file!
ファイルが読み取り可能かどうかを判定し、読み取り可能であれば readfile() 関数を使ってファイルの中身を出力します。
<?php
$file_path = "demo.txt";
if(is_readable($file_path)) {
echo ("Readable!");
echo ("Reading file: ");
readfile($file_path);
} else {
echo ("Not readable!");
}
?>
出力結果
Not readable!
is_readable()関数を使う際の注意点
- キャッシュの影響: PHPはファイルの状態情報をキャッシュするため、同じスクリプト内で何度も判定を行う場合は
clearstatcache()関数でキャッシュをクリアすると正確な結果が得られます。 - 実行ユーザーの権限: 判定されるのはPHPを実行しているユーザーの権限です。Webサーバー経由の場合、サーバーの実行ユーザー権限が適用される点に注意しましょう。
- セキュリティ対策: ファイルを読み込む前に必ずis_readable()でチェックすることで、存在しないファイルへのアクセスによる警告やエラーを回避できます。
まとめ
is_readable()関数は、ファイルやディレクトリが読み取り可能かどうかを簡単に判定できる便利な関数です。ファイル読み込み処理の前段階で利用することで、堅牢で安全なPHPアプリケーションを構築することができます。ぜひ実際の開発でも活用してみてください。
-
PHPのfile()関数とは?使い方・パラメータ・戻り値をわかりやすく解説
PHPのfile()関数は、指定したファイル全体を読み込み、その内容を行ごとに分割した配列として返す関数です。テキストファイルを簡単に扱いたい場合に便利な基本関数の一つです。構文file(file_path, flag, context)パラメータfile_path − 読み込みたいファイルへのパスを指定します。flag − 省略可能なパラメータで、以下の定数を1つ、または複数組み合わせて指定できます。FILE_USE_INCLUDE_PATH − include_path の中からファイルを検索します。FILE_IGNORE_NEW_LINES − 配列の各要素の末尾に改行文字を追加しません
-
PHPのdelete()関数とは?使い方とサンプルコードをわかりやすく解説
PHPのdelete()関数は、指定したファイルを削除するための関数です。削除したいファイルのパスをパラメータとして渡すことで、そのファイルをシステムから削除できます。 構文(Syntax) delete(file_path) パラメータ(Parameters) file_path: 削除したいファイルのパスを指定します。相対パス・絶対パスのどちらでも指定可能です。 戻り値(Return) delete()関数は、処理結果に応じて以下のブール値を返します。 true: ファイルの削除が成功した場合 false: ファイルの削除に失敗した場合(ファイルが存在しない、権限がないなど) 使用