Exemplo n.º 1
0
 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);
 }