* @copyright 1997-2005 The PHP Group * @license http://www.gnu.org/copyleft/lesser.html LGPL * @version CVS: $Id: MIME.php,v 1.5 2005/04/21 10:01:46 vincentlascaux Exp $ * @link http://pear.php.net/package/File_Archive */ require_once "File/Archive/Predicate.php"; require_once "MIME/Type.php"; /** * Keep only the files that have a specific MIME type * * @see File_Archive_Predicate, File_Archive_Reader_Filter */ class File_Archive_Predicate_MIME extends File_Archive_Predicate { var $mimes; /** * @param $extensions array or comma separated string of allowed extensions */ function File_Archive_Predicate_MIME($mimes) { if (is_string($mimes)) { $this->mimes = explode(",",$mimes); } else { $this->mimes = $mimes; } } /** * @see File_Archive_Predicate::isTrue() */ function isTrue(&$source) { $sourceMIME = $source->getMIME(); foreach ($this->mimes as $mime) { if (MIME_Type::isWildcard($mime)) { $result = MIME_Type::wildcardMatch($mime, $sourceMIME); } else { $result = ($mime == $sourceMIME); } if ($result !== false) { return $result; } } return false; } } ?>