[ Index ]

PHP Cross Reference of moodle-2.8

title

Body

[close]

/lib/zend/Zend/Validate/File/ -> ExcludeExtension.php (source)

   1  <?php
   2  /**
   3   * Zend Framework
   4   *
   5   * LICENSE
   6   *
   7   * This source file is subject to the new BSD license that is bundled
   8   * with this package in the file LICENSE.txt.
   9   * It is also available through the world-wide-web at this URL:
  10   * http://framework.zend.com/license/new-bsd
  11   * If you did not receive a copy of the license and are unable to
  12   * obtain it through the world-wide-web, please send an email
  13   * to [email protected] so we can send you a copy immediately.
  14   *
  15   * @category  Zend
  16   * @package   Zend_Validate
  17   * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
  18   * @license   http://framework.zend.com/license/new-bsd     New BSD License
  19   * @version   $Id$
  20   */
  21  
  22  /**
  23   * @see Zend_Validate_Abstract
  24   */
  25  require_once 'Zend/Validate/File/Extension.php';
  26  
  27  /**
  28   * Validator for the excluding file extensions
  29   *
  30   * @category  Zend
  31   * @package   Zend_Validate
  32   * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
  33   * @license   http://framework.zend.com/license/new-bsd     New BSD License
  34   */
  35  class Zend_Validate_File_ExcludeExtension extends Zend_Validate_File_Extension
  36  {
  37      /**
  38       * @const string Error constants
  39       */
  40      const FALSE_EXTENSION = 'fileExcludeExtensionFalse';
  41      const NOT_FOUND       = 'fileExcludeExtensionNotFound';
  42  
  43      /**
  44       * @var array Error message templates
  45       */
  46      protected $_messageTemplates = array(
  47          self::FALSE_EXTENSION => "File '%value%' has a false extension",
  48          self::NOT_FOUND       => "File '%value%' could not be found",
  49      );
  50  
  51      /**
  52       * Defined by Zend_Validate_Interface
  53       *
  54       * Returns true if and only if the fileextension of $value is not included in the
  55       * set extension list
  56       *
  57       * @param  string  $value Real file to check for extension
  58       * @param  array   $file  File data from Zend_File_Transfer
  59       * @return boolean
  60       */
  61      public function isValid($value, $file = null)
  62      {
  63          // Is file readable ?
  64          require_once 'Zend/Loader.php';
  65          if (!Zend_Loader::isReadable($value)) {
  66              return $this->_throw($file, self::NOT_FOUND);
  67          }
  68  
  69          if ($file !== null) {
  70              $info['extension'] = substr($file['name'], strrpos($file['name'], '.') + 1);
  71          } else {
  72              $info = pathinfo($value);
  73          }
  74  
  75          $extensions = $this->getExtension();
  76  
  77          if ($this->_case and (!in_array($info['extension'], $extensions))) {
  78              return true;
  79          } else if (!$this->_case) {
  80              $found = false;
  81              foreach ($extensions as $extension) {
  82                  if (strtolower($extension) == strtolower($info['extension'])) {
  83                      $found = true;
  84                  }
  85              }
  86  
  87              if (!$found) {
  88                  return true;
  89              }
  90          }
  91  
  92          return $this->_throw($file, self::FALSE_EXTENSION);
  93      }
  94  }


Generated: Fri Nov 28 20:29:05 2014 Cross-referenced by PHPXref 0.7.1