is_executable() 並不會檢查 PATH 環境變數,因此,如果您的目前工作目錄是 /dir/,且您的 PATH 環境變數中有 /bin/,並且檔案 /bin/ffmpeg 存在,則您仍然可以執行 shell_exec("ffmpeg"),但 is_executable("ffmpeg") 會返回 false。
如果您正在尋找一個也會考慮 PATH 環境變數的 is_executable 版本,請嘗試以下程式碼
<?php
函式 is_executable_pathenv(字串 $filename): 布林值
{
如果 (is_executable($filename)) {
返回 true;
}
如果 ($filename !== basename($filename)) {
返回 false;
}
$paths = explode(PATH_SEPARATOR, getenv("PATH"));
foreach ($paths as $path) {
如果 (is_executable($path . DIRECTORY_SEPARATOR . $filename)) {
返回 true;
}
}
返回 false;
}