Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【PHP8.x】isExecutableメソッドの使い方

isExecutableメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

isExecutableメソッドは、ファイルまたはディレクトリが実行可能であるかを判定するメソッドです。 このメソッドは、RecursiveDirectoryIteratorクラスのインスタンスが提供する機能の一部です。RecursiveDirectoryIteratorは、指定されたディレクトリ内のファイルやサブディレクトリを再帰的に走査し、各要素にアクセスするためのイテレータを提供します。 isExecutableメソッドは、このイテレータが現在指し示しているファイルシステム上の項目(ファイルやディレクトリ)に対して、PHPを実行しているユーザーが実行権限を持っているかどうかをチェックします。 もし対象の項目が実行可能であればtrueを返し、そうでなければfalseを返します。この判定は、オペレーティングシステムが管理するファイルパーミッション(例えば、UNIX系システムにおける「実行ビット」など)に基づいて行われます。 システムエンジニアを目指す初心者の方にとって、このメソッドは、プログラムが特定のスクリプトやバイナリファイルを実行できるかを事前に確認したり、ウェブアプリケーションにおいてユーザーがアップロードしたファイルの実行可能性を検証したりする際に非常に有用です。セキュリティ関連の機能や、ファイルシステム操作のロジックを構築する上で、ファイルやディレクトリの実行権限を正確に把握するために利用されます。これにより、予期せぬ実行を防ぎ、より安全で堅牢なアプリケーション開発に貢献します。

構文(syntax)

1<?php
2$directoryPath = './'; // 現在のディレクトリを対象とします。
3$directoryIterator = new RecursiveDirectoryIterator($directoryPath);
4$iterator = new RecursiveIteratorIterator($directoryIterator);
5
6foreach ($iterator as $fileOrDirectory) {
7    // RecursiveDirectoryIterator の要素である SplFileInfo オブジェクトに対して
8    // isExecutable() メソッドを呼び出します。
9    // このメソッドは引数を取らず、ファイルまたはディレクトリが実行可能であれば true、そうでなければ false を返します。
10    $isExecutableStatus = $fileOrDirectory->isExecutable();
11
12    if ($isExecutableStatus) {
13        echo $fileOrDirectory->getPathname() . " は実行可能です。\n";
14    } else {
15        echo $fileOrDirectory->getPathname() . " は実行可能ではありません。\n";
16    }
17}

引数(parameters)

引数なし

引数はありません

戻り値(return)

bool

指定されたファイルやディレクトリが実行可能であるかどうかを真偽値で返します。