PluginProbe ʕ •ᴥ•ʔ
Matomo Analytics – Powerful, Privacy-First Insights for WordPress / 1.3.1
Matomo Analytics – Powerful, Privacy-First Insights for WordPress v1.3.1
5.11.1 5.11.0 5.10.2 5.10.1 trunk 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.3.0 1.3.1 1.3.2 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.1.0 4.1.1 4.1.2 4.1.3 4.10.0 4.11.0 4.12.0 4.13.0 4.13.2 4.13.3 4.13.4 4.13.5 4.14.0 4.14.1 4.14.2 4.15.0 4.15.1 4.15.2 4.15.3 4.2.0 4.3.0 4.3.1 4.4.1 4.4.2 4.5.0 4.6.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 5.0.8 5.1.0 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.1.7 5.10.0 5.2.0 5.2.1 5.2.2 5.3.0 5.3.1 5.3.2 5.3.3 5.6.0 5.6.1 5.7.0 5.7.1 5.8.0 5.8.1 5.8.2
matomo / app / libs / Zend / Validate / File / Crc32.php
matomo / app / libs / Zend / Validate / File Last commit date
Count.php 6 years ago Crc32.php 6 years ago ExcludeExtension.php 6 years ago ExcludeMimeType.php 6 years ago Exists.php 6 years ago Extension.php 6 years ago FilesSize.php 6 years ago Hash.php 6 years ago ImageSize.php 6 years ago IsCompressed.php 6 years ago IsImage.php 6 years ago Md5.php 6 years ago MimeType.php 6 years ago NotExists.php 6 years ago Sha1.php 6 years ago Size.php 6 years ago Upload.php 6 years ago WordCount.php 6 years ago
Crc32.php
180 lines
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 license@zend.com so we can send you a copy immediately.
14 *
15 * @category Zend
16 * @package Zend_Validate
17 * @copyright Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
18 * @license http://framework.zend.com/license/new-bsd New BSD License
19 * @version $Id: Crc32.php 23775 2011-03-01 17:25:24Z ralph $
20 */
21
22 /**
23 * @see Zend_Validate_File_Hash
24 */
25 // require_once 'Zend/Validate/File/Hash.php';
26
27 /**
28 * Validator for the crc32 hash of given files
29 *
30 * @category Zend
31 * @package Zend_Validate
32 * @copyright Copyright (c) 2005-2011 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_Crc32 extends Zend_Validate_File_Hash
36 {
37 /**
38 * @const string Error constants
39 */
40 const DOES_NOT_MATCH = 'fileCrc32DoesNotMatch';
41 const NOT_DETECTED = 'fileCrc32NotDetected';
42 const NOT_FOUND = 'fileCrc32NotFound';
43
44 /**
45 * @var array Error message templates
46 */
47 protected $_messageTemplates = array(
48 self::DOES_NOT_MATCH => "File '%value%' does not match the given crc32 hashes",
49 self::NOT_DETECTED => "A crc32 hash could not be evaluated for the given file",
50 self::NOT_FOUND => "File '%value%' is not readable or does not exist",
51 );
52
53 /**
54 * Hash of the file
55 *
56 * @var string
57 */
58 protected $_hash;
59
60 /**
61 * Sets validator options
62 *
63 * @param string|array|Zend_Config $options
64 * @return void
65 */
66 public function __construct($options)
67 {
68 if ($options instanceof Zend_Config) {
69 $options = $options->toArray();
70 } elseif (is_scalar($options)) {
71 $options = array('hash1' => $options);
72 } elseif (!is_array($options)) {
73 // require_once 'Zend/Validate/Exception.php';
74 throw new Zend_Validate_Exception('Invalid options to validator provided');
75 }
76
77 $this->setCrc32($options);
78 }
79
80 /**
81 * Returns all set crc32 hashes
82 *
83 * @return array
84 */
85 public function getCrc32()
86 {
87 return $this->getHash();
88 }
89
90 /**
91 * Sets the crc32 hash for one or multiple files
92 *
93 * @param string|array $options
94 * @return Zend_Validate_File_Hash Provides a fluent interface
95 */
96 public function setHash($options)
97 {
98 if (!is_array($options)) {
99 $options = array($options);
100 }
101
102 $options['algorithm'] = 'crc32';
103 parent::setHash($options);
104 return $this;
105 }
106
107 /**
108 * Sets the crc32 hash for one or multiple files
109 *
110 * @param string|array $options
111 * @return Zend_Validate_File_Hash Provides a fluent interface
112 */
113 public function setCrc32($options)
114 {
115 $this->setHash($options);
116 return $this;
117 }
118
119 /**
120 * Adds the crc32 hash for one or multiple files
121 *
122 * @param string|array $options
123 * @return Zend_Validate_File_Hash Provides a fluent interface
124 */
125 public function addHash($options)
126 {
127 if (!is_array($options)) {
128 $options = array($options);
129 }
130
131 $options['algorithm'] = 'crc32';
132 parent::addHash($options);
133 return $this;
134 }
135
136 /**
137 * Adds the crc32 hash for one or multiple files
138 *
139 * @param string|array $options
140 * @return Zend_Validate_File_Hash Provides a fluent interface
141 */
142 public function addCrc32($options)
143 {
144 $this->addHash($options);
145 return $this;
146 }
147
148 /**
149 * Defined by Zend_Validate_Interface
150 *
151 * Returns true if and only if the given file confirms the set hash
152 *
153 * @param string $value Filename to check for hash
154 * @param array $file File data from Zend_File_Transfer
155 * @return boolean
156 */
157 public function isValid($value, $file = null)
158 {
159 // Is file readable ?
160 // require_once 'Zend/Loader.php';
161 if (!Zend_Loader::isReadable($value)) {
162 return $this->_throw($file, self::NOT_FOUND);
163 }
164
165 $hashes = array_unique(array_keys($this->_hash));
166 $filehash = hash_file('crc32', $value);
167 if ($filehash === false) {
168 return $this->_throw($file, self::NOT_DETECTED);
169 }
170
171 foreach($hashes as $hash) {
172 if ($filehash === $hash) {
173 return true;
174 }
175 }
176
177 return $this->_throw($file, self::DOES_NOT_MATCH);
178 }
179 }
180