[ Index ]

PHP Cross Reference of moodle-2.8

title

Body

[close]

/lib/zend/Zend/Validate/File/ -> WordCount.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_File_Count
  24   */
  25  require_once 'Zend/Validate/File/Count.php';
  26  
  27  /**
  28   * Validator for counting all words in a file
  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_WordCount extends Zend_Validate_File_Count
  36  {
  37      /**#@+
  38       * @const string Error constants
  39       */
  40      const TOO_MUCH  = 'fileWordCountTooMuch';
  41      const TOO_LESS  = 'fileWordCountTooLess';
  42      const NOT_FOUND = 'fileWordCountNotFound';
  43      /**#@-*/
  44  
  45      /**
  46       * @var array Error message templates
  47       */
  48      protected $_messageTemplates = array(
  49          self::TOO_MUCH => "Too much words, maximum '%max%' are allowed but '%count%' were counted",
  50          self::TOO_LESS => "Too less words, minimum '%min%' are expected but '%count%' were counted",
  51          self::NOT_FOUND => "File '%value%' could not be found",
  52      );
  53  
  54      /**
  55       * Defined by Zend_Validate_Interface
  56       *
  57       * Returns true if and only if the counted words are at least min and
  58       * not bigger than max (when max is not null).
  59       *
  60       * @param  string $value Filename to check for word count
  61       * @param  array  $file  File data from Zend_File_Transfer
  62       * @return boolean
  63       */
  64      public function isValid($value, $file = null)
  65      {
  66          // Is file readable ?
  67          require_once 'Zend/Loader.php';
  68          if (!Zend_Loader::isReadable($value)) {
  69              return $this->_throw($file, self::NOT_FOUND);
  70          }
  71  
  72          $content = file_get_contents($value);
  73          $this->_count = str_word_count($content);
  74          if (($this->_max !== null) && ($this->_count > $this->_max)) {
  75              return $this->_throw($file, self::TOO_MUCH);
  76          }
  77  
  78          if (($this->_min !== null) && ($this->_count < $this->_min)) {
  79              return $this->_throw($file, self::TOO_LESS);
  80          }
  81  
  82          return true;
  83      }
  84  
  85      /**
  86       * Throws an error of the given type
  87       *
  88       * @param  string $file
  89       * @param  string $errorType
  90       * @return false
  91       */
  92      protected function _throw($file, $errorType)
  93      {
  94          if ($file !== null) {
  95              $this->_value = $file['name'];
  96          }
  97  
  98          $this->_error($errorType);
  99          return false;
 100      }
 101  }


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