fileperms

関数の概要

PHPの fileperms 関数は、指定したファイルやディレクトリのパーミッション(アクセス権限)を取得するための関数です。ファイルの読み取り・書き込み・実行許可などの設定状態を数値で取得できるため、ファイル操作の前に権限を確認したい場合に役立ちます。

パラメータの説明

  • filename: パーミッションを確認したいファイルまたはディレクトリのパスを文字列で指定します。絶対パスまたは相対パスが使用可能です。

戻り値

fileperms は、指定したファイルのパーミッションを整数(モード)として返します。この値はファイルタイプや権限情報を含むビットマスクであり、直接人間に読みやすい形式ではありません。詳細なパーミッションを確認するにはビット演算を行うか、デバッグ用に decoct() 関数で8進数表現に変換することが一般的です。

使用例

基本的な使い方

<?php
$path = 'example.txt';
$perms = fileperms($path);
echo 'ファイルパーミッションのモード: ' . $perms;
?>

このコードは example.txt のパーミッションを取得し、その数値を画面に表示します。ただし、このままだと値は大きな整数で分かりづらいです。

パーミッションを8進数表現で取得する

<?php
$path = 'example.txt';
$perms = fileperms($path);
echo 'ファイルパーミッション: ' . decoct($perms & 0xFFF) . "n";
?>

8進数に変換し、アクセス権限のみの部分(下位12ビット)を抜き出して表示しています。例えば「0644」などの形式で見やすくなります。

パーミッション判定を行う例(読み込み権限の有無)

<?php
$path = 'example.txt';
$perms = fileperms($path);

if (($perms & 0x0100) === 0x0100) {
    echo '所有者がファイルを読み込む権限があります。';
} else {
    echo '所有者に読み込み権限がありません。';
}
?>

ここではビットマスクを使い、ファイルの所有者が読み取り権限を持っているかどうか判定しています。0x0100 は所有者の読み込み権限を示すビットです。

関連する関数

  • chmod – ファイルのパーミッションを変更する
  • is_readable – ファイルが読み込み可能か判定する
  • is_writable – ファイルが書き込み可能か判定する
  • fileowner – ファイル所有者のユーザーIDを取得する

まとめ

fileperms はPHPでファイルやディレクトリのパーミッションを取得する基本的な関数です。ユーザー権限や実行権限の確認を行う際に便利で、取得したモードは8進数に変換したりビット演算で解析する必要があります。実務では、ファイル権限をチェックしてエラー回避やセキュリティ対策に活用すると良いでしょう。