コードを調べた後、私はこの関数にたどり着きました。
/**
* Gets all available MIME-types
*
* @access public
* @staticvar array mimetypes
* @return array array[mimetype], array[transformation]
*/
function PMA_getAvailableMIMEtypes()
{
static $stack = null;
if (null !== $stack) {
return $stack;
}
$stack = array();
$filestack = array();
$handle = opendir('./libraries/plugins/transformations');
if (! $handle) {
return $stack;
}
while ($file = readdir($handle)) {
$filestack[] = $file;
}
closedir($handle);
sort($filestack);
foreach ($filestack as $file) {
if (preg_match('|^.*_.*_.*\.class\.php$|', $file)) {
// File contains transformation functions.
$parts = explode('_', str_replace('.class.php', '', $file));
$mimetype = $parts[0] . "/" . $parts[1];
$stack['mimetype'][$mimetype] = $mimetype;
$stack['transformation'][] = $mimetype . ': ' . $parts[2];
$stack['transformation_file'][] = $file;
} elseif (preg_match('|^.*\.class.php$|', $file)) {
// File is a plain mimetype, no functions.
$base = str_replace('.class.php', '', $file);
if ($base != 'global') {
$mimetype = str_replace('_', '/', $base);
$stack['mimetype'][$mimetype] = $mimetype;
$stack['empty_mimetype'][$mimetype] = $mimetype;
}
}
}
return $stack;
}
私のphpスキルは限られていますが、plugins / transformsディレクトリ内のファイルを読み取り、これらのファイル名をこの関数を参照するスクリプトに返すことがわかります。ターミナルからこのディレクトリを閲覧すると、ファインダーによって作成された._ファイルでいっぱいになっていることに気付きました。私はMacを使用して開発を行っており、wgetの代わりにfinderを使用してphpmyadminのこの最新のコピーをプルしたため、これらの._ファイルがすべて作成されました。それらについての何かがこの関数を台無しにし、基本レベルでfindコマンドを使用してそれらを削除すると、すべてが意図したとおりに機能しました。同様のことを経験している人のためのfindコマンドは次のとおりです。
find . -type f -name '._*' -exec rm {} \;
繰り返しになりますが、phpmyadminディレクトリのベースレベルで実行すると、すべてうまくいくはずです。