static function findByURL($url, $returnDefault = true) { $instance = eZMimeType::instance(); $file = $url; $dirPosition = strrpos($url, '/'); if ($dirPosition !== false) { $file = substr($url, $dirPosition + 1); } $suffixPosition = strrpos($file, '.'); $suffix = false; $prefix = false; $mimeName = false; if ($suffixPosition !== false) { $suffix = strtolower(substr($file, $suffixPosition + 1)); if ($suffix) { $subURL = substr($file, 0, $suffixPosition); $suffixList =& $instance->SuffixList; if (array_key_exists($suffix, $suffixList)) { $mimeName = $suffixList[$suffix]; } } if (!$mimeName) { $prefixPosition = strpos($file, '.'); if ($prefixPosition !== false) { $prefix = strtolower(substr($file, 0, $prefixPosition)); } if ($prefix) { $subURL = substr($file, $suffixPosition + 1); $prefixList =& $instance->PrefixList; if (array_key_exists($prefix, $prefixList)) { $mimeName = $prefixList[$prefix]; } } } if ($mimeName) { $mimeList =& $instance->MIMEList; if (array_key_exists($mimeName, $mimeList)) { $lastDirPosition = strrpos($url, '/'); $filename = $url; $dirpath = false; if ($lastDirPosition !== false) { $filename = substr($url, $lastDirPosition + 1); $dirpath = substr($url, 0, $lastDirPosition); } $lastDirPosition = strrpos($subURL, '/'); $basename = $subURL; if ($lastDirPosition !== false) { $basename = substr($subURL, $lastDirPosition + 1); } $mime = $mimeList[$mimeName]; $mime['name'] = $mimeName; $mime['url'] = $url; $mime['filename'] = $filename; $mime['dirpath'] = $dirpath; $mime['basename'] = $basename; $mime['suffix'] = $suffix; $mime['prefix'] = $prefix; $mime['is_valid'] = true; return $mime; } } } return eZMimeType::defaultValue($url, $returnDefault); }