PHPのis_writable()関数とは?使い方とサンプルコードをわかりやすく解説
is_writable() 関数は、指定したファイルが書き込み可能かどうかを判定するPHPの組み込み関数です。ファイルが存在し、かつ書き込み権限がある場合に TRUE を返します。
基本構文
is_writable(file_path)
パラメータ
file_path(必須)− 書き込み可能かどうかを確認したいファイルへのパスを文字列で指定します。
戻り値
次の場合に TRUE を返します。
- ファイルが存在する
- そのファイルに対して書き込み権限がある
上記以外の場合(ファイルが存在しない、読み取り専用など)は FALSE を返します。
ポイント: is_writable() は is_writeable() のエイリアスでもあるため、どちらの名前で呼び出しても同じ動作になります。また、この関数の実行結果はキャッシュされるため、同じファイルに対して繰り返し判定を行う場合は clearstatcache() を呼び出してキャッシュをクリアすると確実です。
使用例1:シンプルな書き込み可否チェック
<?php
$file = "one.txt";
if(is_writable($file)) {
echo ("File is writeable!");
} else {
echo ("File is not writeable!");
}
?>
出力結果
File is not writeable!
この例では「one.txt」に書き込み権限がないため、else 側の処理が実行されています。
使用例2:ファイルパーミッションと合わせて確認する
続いて、fileperms() 関数と組み合わせて、パーミッション情報を表示しながら書き込み可否を確認する例を見てみましょう。
<?php
$file_permissions = fileperms("two.txt");
$res = sprintf("%o", $file_permissions);
$file = "two.txt";
if(is_writable($file)) {
echo ("File is writeable!");
echo("Permission = $res");
} else {
echo ("File is not writeable!");
echo("Permission = $res");
}
?>
出力結果
File is writeable! Permission: 0777
この例では「two.txt」のパーミッションが「0777」(すべてのユーザーに読み書き実行が許可されている状態)であるため、is_writable() は TRUE を返しています。
まとめ
is_writable() 関数を使うことで、ファイルへの書き込み処理を実行する前に事前に権限をチェックできます。ログファイルへの追記や設定ファイルの更新など、書き込み操作を行う前のエラーチェックとして活用すると、予期しないエラーを防ぐことができます。
-
PHPのfile_get_contents()関数とは?使い方とパラメータを徹底解説
PHPのfile_get_contents()関数は、ファイル全体を読み込んで1つの文字列として返す関数です。似た関数であるfile()関数がファイル全体を配列として読み込むのに対し、file_get_contents()関数はファイル全体を単一の文字列として取得できる点が大きな特徴です。基本構文file_get_contents(file_path, flags, context, start_offset, max_length)パラメータの詳細file_path: 読み込み対象となるファイルへのパスを指定します。flags: 以下のフラグをバイナリOR演算子(|)で組み合わせて指定できま
-
PHPのfile()関数とは?使い方・パラメータ・戻り値をわかりやすく解説
PHPのfile()関数は、指定したファイル全体を読み込み、その内容を行ごとに分割した配列として返す関数です。テキストファイルを簡単に扱いたい場合に便利な基本関数の一つです。構文file(file_path, flag, context)パラメータfile_path − 読み込みたいファイルへのパスを指定します。flag − 省略可能なパラメータで、以下の定数を1つ、または複数組み合わせて指定できます。FILE_USE_INCLUDE_PATH − include_path の中からファイルを検索します。FILE_IGNORE_NEW_LINES − 配列の各要素の末尾に改行文字を追加しません