|
|
@ -190,50 +190,6 @@ |
|
|
|
} |
|
|
|
return $info; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* detect if a given program is found in the search PATH |
|
|
|
* |
|
|
|
* helper function used by _mimetype() to detect if the |
|
|
|
* external 'file' utility is available |
|
|
|
* |
|
|
|
* @param string program name |
|
|
|
* @param string optional search path, defaults to $PATH |
|
|
|
* @return bool true if executable program found in path |
|
|
|
*/ |
|
|
|
function _can_execute($name, $path = false) |
|
|
|
{ |
|
|
|
// path defaults to PATH from environment if not set
|
|
|
|
if ($path === false) { |
|
|
|
$path = getenv("PATH"); |
|
|
|
} |
|
|
|
|
|
|
|
// check method depends on operating system
|
|
|
|
if (!strncmp(PHP_OS, "WIN", 3)) { |
|
|
|
// on Windows an appropriate COM or EXE file needs to exist
|
|
|
|
$exts = array(".exe", ".com"); |
|
|
|
$check_fn = "file_exists"; |
|
|
|
} else { |
|
|
|
// anywhere else we look for an executable file of that name
|
|
|
|
$exts = array(""); |
|
|
|
$check_fn = "is_executable"; |
|
|
|
} |
|
|
|
|
|
|
|
// now check the directories in the path for the program
|
|
|
|
foreach (explode(PATH_SEPARATOR, $path) as $dir) { |
|
|
|
// skip invalid path entries
|
|
|
|
if (!file_exists($dir)) continue; |
|
|
|
if (!is_dir($dir)) continue; |
|
|
|
|
|
|
|
// and now look for the file
|
|
|
|
foreach ($exts as $ext) { |
|
|
|
if ($check_fn("$dir/$name".$ext)) return true; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
return false; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
* try to detect the mime type of a file |
|
|
|