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 / Exists.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
Exists.php
204 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: Exists.php 23775 2011-03-01 17:25:24Z ralph $
20 */
21
22 /**
23 * @see Zend_Validate_Abstract
24 */
25 // require_once 'Zend/Validate/Abstract.php';
26
27 /**
28 * Validator which checks if the file already exists in the directory
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_Exists extends Zend_Validate_Abstract
36 {
37 /**
38 * @const string Error constants
39 */
40 const DOES_NOT_EXIST = 'fileExistsDoesNotExist';
41
42 /**
43 * @var array Error message templates
44 */
45 protected $_messageTemplates = array(
46 self::DOES_NOT_EXIST => "File '%value%' does not exist",
47 );
48
49 /**
50 * Internal list of directories
51 * @var string
52 */
53 protected $_directory = '';
54
55 /**
56 * @var array Error message template variables
57 */
58 protected $_messageVariables = array(
59 'directory' => '_directory'
60 );
61
62 /**
63 * Sets validator options
64 *
65 * @param string|array|Zend_Config $directory
66 * @return void
67 */
68 public function __construct($directory = array())
69 {
70 if ($directory instanceof Zend_Config) {
71 $directory = $directory->toArray();
72 } else if (is_string($directory)) {
73 $directory = explode(',', $directory);
74 } else if (!is_array($directory)) {
75 // require_once 'Zend/Validate/Exception.php';
76 throw new Zend_Validate_Exception ('Invalid options to validator provided');
77 }
78
79 $this->setDirectory($directory);
80 }
81
82 /**
83 * Returns the set file directories which are checked
84 *
85 * @param boolean $asArray Returns the values as array, when false an concated string is returned
86 * @return string
87 */
88 public function getDirectory($asArray = false)
89 {
90 $asArray = (bool) $asArray;
91 $directory = (string) $this->_directory;
92 if ($asArray) {
93 $directory = explode(',', $directory);
94 }
95
96 return $directory;
97 }
98
99 /**
100 * Sets the file directory which will be checked
101 *
102 * @param string|array $directory The directories to validate
103 * @return Zend_Validate_File_Extension Provides a fluent interface
104 */
105 public function setDirectory($directory)
106 {
107 $this->_directory = null;
108 $this->addDirectory($directory);
109 return $this;
110 }
111
112 /**
113 * Adds the file directory which will be checked
114 *
115 * @param string|array $directory The directory to add for validation
116 * @return Zend_Validate_File_Extension Provides a fluent interface
117 */
118 public function addDirectory($directory)
119 {
120 $directories = $this->getDirectory(true);
121
122 if (is_string($directory)) {
123 $directory = explode(',', $directory);
124 } else if (!is_array($directory)) {
125 // require_once 'Zend/Validate/Exception.php';
126 throw new Zend_Validate_Exception ('Invalid options to validator provided');
127 }
128
129 foreach ($directory as $content) {
130 if (empty($content) || !is_string($content)) {
131 continue;
132 }
133
134 $directories[] = trim($content);
135 }
136 $directories = array_unique($directories);
137
138 // Sanity check to ensure no empty values
139 foreach ($directories as $key => $dir) {
140 if (empty($dir)) {
141 unset($directories[$key]);
142 }
143 }
144
145 $this->_directory = implode(',', $directories);
146
147 return $this;
148 }
149
150 /**
151 * Defined by Zend_Validate_Interface
152 *
153 * Returns true if and only if the file already exists in the set directories
154 *
155 * @param string $value Real file to check for existance
156 * @param array $file File data from Zend_File_Transfer
157 * @return boolean
158 */
159 public function isValid($value, $file = null)
160 {
161 $directories = $this->getDirectory(true);
162 if (($file !== null) and (!empty($file['destination']))) {
163 $directories[] = $file['destination'];
164 } else if (!isset($file['name'])) {
165 $file['name'] = $value;
166 }
167
168 $check = false;
169 foreach ($directories as $directory) {
170 if (empty($directory)) {
171 continue;
172 }
173
174 $check = true;
175 if (!file_exists($directory . DIRECTORY_SEPARATOR . $file['name'])) {
176 return $this->_throw($file, self::DOES_NOT_EXIST);
177 }
178 }
179
180 if (!$check) {
181 return $this->_throw($file, self::DOES_NOT_EXIST);
182 }
183
184 return true;
185 }
186
187 /**
188 * Throws an error of the given type
189 *
190 * @param string $file
191 * @param string $errorType
192 * @return false
193 */
194 protected function _throw($file, $errorType)
195 {
196 if ($file !== null) {
197 $this->_value = $file['name'];
198 }
199
200 $this->_error($errorType);
201 return false;
202 }
203 }
204