PluginProbe
Visualizer – Tables & Charts Manager with Built-in AI Generator / 3.0.10
Visualizer – Tables & Charts Manager with Built-in AI Generator v3.0.10
4.0.8 4.0.7 4.0.6 4.0.5 4.0.4 4.0.3 3.0.5 3.0.6 3.0.7 3.0.8 3.0.9 3.1.0 3.1.1 3.1.2 3.1.3 3.10.0 3.10.1 3.10.10 3.10.11 3.10.12 3.10.13 3.10.14 3.10.15 3.10.2 3.10.3 All 149 releases
← All changes | vendor/phpoffice/phpexcel/Classes/PHPExcel/Reader/Abstract.php +201 -247 3.1.03.0.10 View file →
@@ -1,10 +1,9 @@
1 1 <?php
2 -
3 2 /**
4 - * PHPExcel_Reader_Abstract
3 + * PHPExcel
5 4 *
6 - * Copyright (c) 2006 - 2015 PHPExcel
5 + * Copyright (c) 2006 - 2014 PHPExcel
7 6 *
8 7 * This library is free software; you can redistribute it and/or
9 8 * modify it under the terms of the GNU Lesser General Public
10 9 * License as published by the Free Software Foundation; either
@@ -20,282 +19,237 @@
20 19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21 20 *
22 21 * @category PHPExcel
23 22 * @package PHPExcel_Reader
24 - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel)
25 - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
23 + * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24 + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
26 25 * @version ##VERSION##, ##DATE##
27 26 */
27 +
28 +
29 +/**
30 + * PHPExcel_Reader_Abstract
31 + *
32 + * @category PHPExcel
33 + * @package PHPExcel_Reader
34 + * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
35 + */
28 36 abstract class PHPExcel_Reader_Abstract implements PHPExcel_Reader_IReader
29 37 {
30 - /**
31 - * Read data only?
32 - * Identifies whether the Reader should only read data values for cells, and ignore any formatting information;
33 - * or whether it should read both data and formatting
34 - *
35 - * @var boolean
36 - */
37 - protected $readDataOnly = false;
38 + /**
39 + * Read data only?
40 + * Identifies whether the Reader should only read data values for cells, and ignore any formatting information;
41 + * or whether it should read both data and formatting
42 + *
43 + * @var boolean
44 + */
45 + protected $_readDataOnly = FALSE;
38 46
39 - /**
40 - * Read empty cells?
41 - * Identifies whether the Reader should read data values for cells all cells, or should ignore cells containing
42 - * null value or empty string
43 - *
44 - * @var boolean
45 - */
46 - protected $readEmptyCells = true;
47 + /**
48 + * Read charts that are defined in the workbook?
49 + * Identifies whether the Reader should read the definitions for any charts that exist in the workbook;
50 + *
51 + * @var boolean
52 + */
53 + protected $_includeCharts = FALSE;
47 54
48 - /**
49 - * Read charts that are defined in the workbook?
50 - * Identifies whether the Reader should read the definitions for any charts that exist in the workbook;
51 - *
52 - * @var boolean
53 - */
54 - protected $includeCharts = false;
55 + /**
56 + * Restrict which sheets should be loaded?
57 + * This property holds an array of worksheet names to be loaded. If null, then all worksheets will be loaded.
58 + *
59 + * @var array of string
60 + */
61 + protected $_loadSheetsOnly = NULL;
55 62
56 - /**
57 - * Restrict which sheets should be loaded?
58 - * This property holds an array of worksheet names to be loaded. If null, then all worksheets will be loaded.
59 - *
60 - * @var array of string
61 - */
62 - protected $loadSheetsOnly;
63 + /**
64 + * PHPExcel_Reader_IReadFilter instance
65 + *
66 + * @var PHPExcel_Reader_IReadFilter
67 + */
68 + protected $_readFilter = NULL;
63 69
64 - /**
65 - * PHPExcel_Reader_IReadFilter instance
66 - *
67 - * @var PHPExcel_Reader_IReadFilter
68 - */
69 - protected $readFilter;
70 + protected $_fileHandle = NULL;
70 71
71 - protected $fileHandle = null;
72 72
73 + /**
74 + * Read data only?
75 + * If this is true, then the Reader will only read data values for cells, it will not read any formatting information.
76 + * If false (the default) it will read data and formatting.
77 + *
78 + * @return boolean
79 + */
80 + public function getReadDataOnly() {
81 + return $this->_readDataOnly;
82 + }
73 83
74 - /**
75 - * Read data only?
76 - * If this is true, then the Reader will only read data values for cells, it will not read any formatting information.
77 - * If false (the default) it will read data and formatting.
78 - *
79 - * @return boolean
80 - */
81 - public function getReadDataOnly()
82 - {
83 - return $this->readDataOnly;
84 - }
84 + /**
85 + * Set read data only
86 + * Set to true, to advise the Reader only to read data values for cells, and to ignore any formatting information.
87 + * Set to false (the default) to advise the Reader to read both data and formatting for cells.
88 + *
89 + * @param boolean $pValue
90 + *
91 + * @return PHPExcel_Reader_IReader
92 + */
93 + public function setReadDataOnly($pValue = FALSE) {
94 + $this->_readDataOnly = $pValue;
95 + return $this;
96 + }
85 97
86 - /**
87 - * Set read data only
88 - * Set to true, to advise the Reader only to read data values for cells, and to ignore any formatting information.
89 - * Set to false (the default) to advise the Reader to read both data and formatting for cells.
90 - *
91 - * @param boolean $pValue
92 - *
93 - * @return PHPExcel_Reader_IReader
94 - */
95 - public function setReadDataOnly($pValue = false)
96 - {
97 - $this->readDataOnly = $pValue;
98 - return $this;
99 - }
98 + /**
99 + * Read charts in workbook?
100 + * If this is true, then the Reader will include any charts that exist in the workbook.
101 + * Note that a ReadDataOnly value of false overrides, and charts won't be read regardless of the IncludeCharts value.
102 + * If false (the default) it will ignore any charts defined in the workbook file.
103 + *
104 + * @return boolean
105 + */
106 + public function getIncludeCharts() {
107 + return $this->_includeCharts;
108 + }
100 109
101 - /**
102 - * Read empty cells?
103 - * If this is true (the default), then the Reader will read data values for all cells, irrespective of value.
104 - * If false it will not read data for cells containing a null value or an empty string.
105 - *
106 - * @return boolean
107 - */
108 - public function getReadEmptyCells()
109 - {
110 - return $this->readEmptyCells;
111 - }
110 + /**
111 + * Set read charts in workbook
112 + * Set to true, to advise the Reader to include any charts that exist in the workbook.
113 + * Note that a ReadDataOnly value of false overrides, and charts won't be read regardless of the IncludeCharts value.
114 + * Set to false (the default) to discard charts.
115 + *
116 + * @param boolean $pValue
117 + *
118 + * @return PHPExcel_Reader_IReader
119 + */
120 + public function setIncludeCharts($pValue = FALSE) {
121 + $this->_includeCharts = (boolean) $pValue;
122 + return $this;
123 + }
112 124
113 - /**
114 - * Set read empty cells
115 - * Set to true (the default) to advise the Reader read data values for all cells, irrespective of value.
116 - * Set to false to advise the Reader to ignore cells containing a null value or an empty string.
117 - *
118 - * @param boolean $pValue
119 - *
120 - * @return PHPExcel_Reader_IReader
121 - */
122 - public function setReadEmptyCells($pValue = true)
123 - {
124 - $this->readEmptyCells = $pValue;
125 - return $this;
126 - }
125 + /**
126 + * Get which sheets to load
127 + * Returns either an array of worksheet names (the list of worksheets that should be loaded), or a null
128 + * indicating that all worksheets in the workbook should be loaded.
129 + *
130 + * @return mixed
131 + */
132 + public function getLoadSheetsOnly()
133 + {
134 + return $this->_loadSheetsOnly;
135 + }
127 136
128 - /**
129 - * Read charts in workbook?
130 - * If this is true, then the Reader will include any charts that exist in the workbook.
131 - * Note that a ReadDataOnly value of false overrides, and charts won't be read regardless of the IncludeCharts value.
132 - * If false (the default) it will ignore any charts defined in the workbook file.
133 - *
134 - * @return boolean
135 - */
136 - public function getIncludeCharts()
137 - {
138 - return $this->includeCharts;
139 - }
140 -
141 - /**
142 - * Set read charts in workbook
143 - * Set to true, to advise the Reader to include any charts that exist in the workbook.
144 - * Note that a ReadDataOnly value of false overrides, and charts won't be read regardless of the IncludeCharts value.
145 - * Set to false (the default) to discard charts.
146 - *
147 - * @param boolean $pValue
148 - *
149 - * @return PHPExcel_Reader_IReader
150 - */
151 - public function setIncludeCharts($pValue = false)
152 - {
153 - $this->includeCharts = (boolean) $pValue;
154 - return $this;
155 - }
156 -
157 - /**
158 - * Get which sheets to load
159 - * Returns either an array of worksheet names (the list of worksheets that should be loaded), or a null
160 - * indicating that all worksheets in the workbook should be loaded.
161 - *
162 - * @return mixed
163 - */
164 - public function getLoadSheetsOnly()
165 - {
166 - return $this->loadSheetsOnly;
167 - }
168 -
169 - /**
170 - * Set which sheets to load
171 - *
172 - * @param mixed $value
173 - * This should be either an array of worksheet names to be loaded, or a string containing a single worksheet name.
174 - * If NULL, then it tells the Reader to read all worksheets in the workbook
175 - *
176 - * @return PHPExcel_Reader_IReader
177 - */
178 - public function setLoadSheetsOnly($value = null)
179 - {
180 - if ($value === null) {
137 + /**
138 + * Set which sheets to load
139 + *
140 + * @param mixed $value
141 + * This should be either an array of worksheet names to be loaded, or a string containing a single worksheet name.
142 + * If NULL, then it tells the Reader to read all worksheets in the workbook
143 + *
144 + * @return PHPExcel_Reader_IReader
145 + */
146 + public function setLoadSheetsOnly($value = NULL)
147 + {
148 + if ($value === NULL)
181 149 return $this->setLoadAllSheets();
182 - }
183 150
184 - $this->loadSheetsOnly = is_array($value) ? $value : array($value);
185 - return $this;
186 - }
151 + $this->_loadSheetsOnly = is_array($value) ?
152 + $value : array($value);
153 + return $this;
154 + }
187 155
188 - /**
189 - * Set all sheets to load
190 - * Tells the Reader to load all worksheets from the workbook.
191 - *
192 - * @return PHPExcel_Reader_IReader
193 - */
194 - public function setLoadAllSheets()
195 - {
196 - $this->loadSheetsOnly = null;
197 - return $this;
198 - }
156 + /**
157 + * Set all sheets to load
158 + * Tells the Reader to load all worksheets from the workbook.
159 + *
160 + * @return PHPExcel_Reader_IReader
161 + */
162 + public function setLoadAllSheets()
163 + {
164 + $this->_loadSheetsOnly = NULL;
165 + return $this;
166 + }
199 167
200 - /**
201 - * Read filter
202 - *
203 - * @return PHPExcel_Reader_IReadFilter
204 - */
205 - public function getReadFilter()
206 - {
207 - return $this->readFilter;
208 - }
168 + /**
169 + * Read filter
170 + *
171 + * @return PHPExcel_Reader_IReadFilter
172 + */
173 + public function getReadFilter() {
174 + return $this->_readFilter;
175 + }
209 176
210 - /**
211 - * Set read filter
212 - *
213 - * @param PHPExcel_Reader_IReadFilter $pValue
214 - * @return PHPExcel_Reader_IReader
215 - */
216 - public function setReadFilter(PHPExcel_Reader_IReadFilter $pValue)
217 - {
218 - $this->readFilter = $pValue;
219 - return $this;
220 - }
177 + /**
178 + * Set read filter
179 + *
180 + * @param PHPExcel_Reader_IReadFilter $pValue
181 + * @return PHPExcel_Reader_IReader
182 + */
183 + public function setReadFilter(PHPExcel_Reader_IReadFilter $pValue) {
184 + $this->_readFilter = $pValue;
185 + return $this;
186 + }
221 187
222 - /**
223 - * Open file for reading
224 - *
225 - * @param string $pFilename
226 - * @throws PHPExcel_Reader_Exception
227 - * @return resource
228 - */
229 - protected function openFile($pFilename)
230 - {
231 - // Check if file exists
232 - if (!file_exists($pFilename) || !is_readable($pFilename)) {
233 - throw new PHPExcel_Reader_Exception("Could not open " . $pFilename . " for reading! File does not exist.");
234 - }
188 + /**
189 + * Open file for reading
190 + *
191 + * @param string $pFilename
192 + * @throws PHPExcel_Reader_Exception
193 + * @return resource
194 + */
195 + protected function _openFile($pFilename)
196 + {
197 + // Check if file exists
198 + if (!file_exists($pFilename) || !is_readable($pFilename)) {
199 + throw new PHPExcel_Reader_Exception("Could not open " . $pFilename . " for reading! File does not exist.");
200 + }
235 201
236 - // Open file
237 - $this->fileHandle = fopen($pFilename, 'r');
238 - if ($this->fileHandle === false) {
239 - throw new PHPExcel_Reader_Exception("Could not open file " . $pFilename . " for reading.");
240 - }
241 - }
202 + // Open file
203 + $this->_fileHandle = fopen($pFilename, 'r');
204 + if ($this->_fileHandle === FALSE) {
205 + throw new PHPExcel_Reader_Exception("Could not open file " . $pFilename . " for reading.");
206 + }
207 + }
242 208
243 - /**
244 - * Can the current PHPExcel_Reader_IReader read the file?
245 - *
246 - * @param string $pFilename
247 - * @return boolean
248 - * @throws PHPExcel_Reader_Exception
249 - */
250 - public function canRead($pFilename)
251 - {
252 - // Check if file exists
253 - try {
254 - $this->openFile($pFilename);
255 - } catch (Exception $e) {
256 - return false;
257 - }
209 + /**
210 + * Can the current PHPExcel_Reader_IReader read the file?
211 + *
212 + * @param string $pFilename
213 + * @return boolean
214 + * @throws PHPExcel_Reader_Exception
215 + */
216 + public function canRead($pFilename)
217 + {
218 + // Check if file exists
219 + try {
220 + $this->_openFile($pFilename);
221 + } catch (Exception $e) {
222 + return FALSE;
223 + }
258 224
259 - $readable = $this->isValidFormat();
260 - fclose($this->fileHandle);
261 - return $readable;
262 - }
225 + $readable = $this->_isValidFormat();
226 + fclose ($this->_fileHandle);
227 + return $readable;
228 + }
263 229
264 - /**
265 - * Scan theXML for use of <!ENTITY to prevent XXE/XEE attacks
266 - *
267 - * @param string $xml
268 - * @throws PHPExcel_Reader_Exception
269 - */
270 - public function securityScan($xml)
271 - {
272 - $pattern = '/encoding="(.*?)"/';
273 - $result = preg_match($pattern, $xml, $matches);
274 - if ($result) {
275 - $charset = $matches[1];
276 - } else {
277 - $charset = 'UTF-8';
278 - }
279 -
280 - if ($charset !== 'UTF-8') {
281 - $xml = mb_convert_encoding($xml, 'UTF-8', $charset);
282 - }
283 -
230 + /**
231 + * Scan theXML for use of <!ENTITY to prevent XXE/XEE attacks
232 + *
233 + * @param string $xml
234 + * @throws PHPExcel_Reader_Exception
235 + */
236 + public function securityScan($xml)
237 + {
284 238 $pattern = '/\\0?' . implode('\\0?', str_split('<!DOCTYPE')) . '\\0?/';
285 - if (preg_match($pattern, $xml)) {
239 + if (preg_match($pattern, $xml)) {
286 240 throw new PHPExcel_Reader_Exception('Detected use of ENTITY in XML, spreadsheet file load() aborted to prevent XXE/XEE attacks');
287 241 }
288 242 return $xml;
289 243 }
290 244
291 - /**
292 - * Scan theXML for use of <!ENTITY to prevent XXE/XEE attacks
293 - *
294 - * @param string $filestream
295 - * @throws PHPExcel_Reader_Exception
296 - */
297 - public function securityScanFile($filestream)
298 - {
245 + /**
246 + * Scan theXML for use of <!ENTITY to prevent XXE/XEE attacks
247 + *
248 + * @param string $filestream
249 + * @throws PHPExcel_Reader_Exception
250 + */
251 + public function securityScanFile($filestream)
252 + {
299 253 return $this->securityScan(file_get_contents($filestream));
300 254 }
301 255 }