【PHP8.x】is_executable関数の使い方

is_executable関数の使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

is_executable関数は、指定されたファイルが実行可能であるかどうかを確認する関数です。この関数は、引数としてファイルパスを受け取り、そのパスで指定されたファイルが現在のユーザーの権限で実行できる状態にあるかをチェックします。これにより、プログラムが外部のスクリプトやコマンドを実行しようとする際に、対象ファイルが適切に設定され、実行権限を持っているかを事前に確認することが可能になります。

例えば、PHPスクリプトがシステム上の別のプログラムを呼び出す前に、そのプログラムの実行ファイルが利用可能で、かつ実行を許可されているかをis_executable関数で検証することができます。検証結果はブール値で返され、実行可能であればtrue(真)、実行不可能であればfalse(偽)となります。

この関数は特にUNIX系のオペレーティングシステム(LinuxやmacOSなど)において、ファイルの実行権限(パーミッション)をチェックする際に非常に有用です。しかし、Windows環境では、ファイルが実行可能な形式(例: .exeファイル)であっても、この関数が常にtrueを返すとは限らないため、使用する際には注意が必要です。ファイルのパスは、絶対パスまたはスクリプトからの相対パスで指定することができます。

is_executable関数は、プログラムの堅牢性を高め、不要なエラーや潜在的なセキュリティリスクを回避するために重要な役割を果たします。

構文(syntax)

1<?php
2$filepath = '/path/to/your/file.php';
3$isExecutable = is_executable($filepath);
4?>

引数(parameters)

string $filename

  • string $filename: 実行可能かどうかをチェックするファイルパスを指定する文字列

戻り値(return)

bool

指定されたファイルパスが実行可能であれば true を、そうでなければ false を返します。

サンプルコード

PHPでファイルが実行可能か判定する

1<?php
2
3// 指定されたファイルが実行可能であるかをチェックするサンプルコードです。
4// システムエンジニアの皆さんへ:
5// この関数は、OSが指定されたパスのファイルを直接実行できるかどうかを判断します。
6// 例えば、バイナリファイル(.exeなど)や実行権限が付与されたスクリプトファイルなどです。
7
8// ここに確認したい実行可能ファイルのパスを指定してください。
9// ご利用のOSや環境に合わせて、存在する実行可能ファイルのパスを設定してください。
10// 例:
11// - Linux/macOSの場合: '/bin/ls', '/usr/bin/php', '/usr/local/bin/composer'
12// - Windowsの場合: 'C:\\Windows\\System32\\cmd.exe', 'C:\\php\\php.exe' (PHPのインストールパスによる)
13$targetFilePath = '/bin/ls'; // 例: Linux/macOS環境での'ls'コマンドのパス
14
15// is_executable() は、ファイルが存在しない場合や読み取り権限がない場合も false を返します。
16// そのため、file_exists() で事前にファイルの存在を確認すると、より正確なメッセージを表示できます。
17if (file_exists($targetFilePath)) {
18    if (is_executable($targetFilePath)) {
19        echo "ファイル '{$targetFilePath}' は実行可能です。\n";
20    } else {
21        echo "ファイル '{$targetFilePath}' は実行可能ではありません。\n";
22    }
23} else {
24    echo "ファイル '{$targetFilePath}' が見つかりませんでした。パスを確認してください。\n";
25}
26
27?>

PHPのis_executable関数は、指定されたファイルがオペレーティングシステムによって実行可能であるかどうかをチェックする際に使用します。

この関数は、確認したいファイルのパスを文字列(string $filename)で引数として受け取ります。そして、指定されたファイルが存在し、かつOS上で実行権限が適切に設定されている場合にtrue(真)を返します。もしファイルが存在しない場合や、ファイルが存在しても読み取り権限や実行権限がない場合はfalse(偽)を返します。

そのため、サンプルコードのようにfile_exists()関数を使って事前にファイルの存在を確認することで、ファイルが見つからないために実行できないのか、それともファイルは存在するが実行権限がないために実行できないのかを明確に区別し、より詳細な情報に基づいた処理やエラーメッセージの表示を行うことができます。

システム開発において、Webサーバーが特定のCGIスクリプトを実行できるか確認したり、外部コマンドやプログラムのパスが正しいか、実行可能かを検証したりする場面で非常に役立つ関数です。

is_executable関数は、指定されたファイルがOSによって直接実行可能であるかを判断します。PHPスクリプトがPHPインタプリタで実行可能であるか、とは異なる概念である点にご注意ください。この関数は、ファイルが存在しない場合や、読み取り権限がない場合もfalseを返します。そのため、事前にfile_exists()関数でファイルの存在を確認することで、より正確なメッセージを表示し、問題を特定しやすくなります。サンプルコードのファイルパスは、ご利用のOS環境に合わせて適切に設定してください。Windows環境では、パスの記述方法に特に注意が必要です。

関連コンテンツ

関連プログラミング言語

【PHP8.x】is_executable関数の使い方 | いっしー@Webエンジニア