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
visualizer / vendor / phpoffice / phpexcel / Classes / PHPExcel / Shared / ZipArchive.php

ZipArchive.php in Visualizer – Tables & Charts Manager with Built-in AI Generator 3.0.10, at vendor/phpoffice/phpexcel/Classes/PHPExcel/Shared/ZipArchive.php

176 lines 5.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * PHPExcel
4 *
5 * Copyright (c) 2006 - 2014 PHPExcel
6 *
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
11 *
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20 *
21 * @category PHPExcel
22 * @package PHPExcel_Shared_ZipArchive
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
25 * @version ##VERSION##, ##DATE##
26 */
27
28 if (!defined('PCLZIP_TEMPORARY_DIR')) {
29 define('PCLZIP_TEMPORARY_DIR', PHPExcel_Shared_File::sys_get_temp_dir() . DIRECTORY_SEPARATOR);
30 }
31 require_once PHPEXCEL_ROOT . 'PHPExcel/Shared/PCLZip/pclzip.lib.php';
32
33
34 /**
35 * PHPExcel_Shared_ZipArchive
36 *
37 * @category PHPExcel
38 * @package PHPExcel_Shared_ZipArchive
39 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
40 */
41 class PHPExcel_Shared_ZipArchive
42 {
43
44 /** constants */
45 const OVERWRITE = 'OVERWRITE';
46 const CREATE = 'CREATE';
47
48
49 /**
50 * Temporary storage directory
51 *
52 * @var string
53 */
54 private $_tempDir;
55
56 /**
57 * Zip Archive Stream Handle
58 *
59 * @var string
60 */
61 private $_zip;
62
63
64 /**
65 * Open a new zip archive
66 *
67 * @param string $fileName Filename for the zip archive
68 * @return boolean
69 */
70 public function open($fileName)
71 {
72 $this->_tempDir = PHPExcel_Shared_File::sys_get_temp_dir();
73
74 $this->_zip = new PclZip($fileName);
75
76 return true;
77 }
78
79
80 /**
81 * Close this zip archive
82 *
83 */
84 public function close()
85 {
86 }
87
88
89 /**
90 * Add a new file to the zip archive from a string of raw data.
91 *
92 * @param string $localname Directory/Name of the file to add to the zip archive
93 * @param string $contents String of data to add to the zip archive
94 */
95 public function addFromString($localname, $contents)
96 {
97 $filenameParts = pathinfo($localname);
98
99 $handle = fopen($this->_tempDir.'/'.$filenameParts["basename"], "wb");
100 fwrite($handle, $contents);
101 fclose($handle);
102
103 $res = $this->_zip->add($this->_tempDir.'/'.$filenameParts["basename"],
104 PCLZIP_OPT_REMOVE_PATH, $this->_tempDir,
105 PCLZIP_OPT_ADD_PATH, $filenameParts["dirname"]
106 );
107 if ($res == 0) {
108 throw new PHPExcel_Writer_Exception("Error zipping files : " . $this->_zip->errorInfo(true));
109 }
110
111 unlink($this->_tempDir.'/'.$filenameParts["basename"]);
112 }
113
114 /**
115 * Find if given fileName exist in archive (Emulate ZipArchive locateName())
116 *
117 * @param string $fileName Filename for the file in zip archive
118 * @return boolean
119 */
120 public function locateName($fileName)
121 {
122 $list = $this->_zip->listContent();
123 $listCount = count($list);
124 $list_index = -1;
125 for ($i = 0; $i < $listCount; ++$i) {
126 if (strtolower($list[$i]["filename"]) == strtolower($fileName) ||
127 strtolower($list[$i]["stored_filename"]) == strtolower($fileName)) {
128 $list_index = $i;
129 break;
130 }
131 }
132 return ($list_index > -1);
133 }
134
135 /**
136 * Extract file from archive by given fileName (Emulate ZipArchive getFromName())
137 *
138 * @param string $fileName Filename for the file in zip archive
139 * @return string $contents File string contents
140 */
141 public function getFromName($fileName)
142 {
143 $list = $this->_zip->listContent();
144 $listCount = count($list);
145 $list_index = -1;
146 for ($i = 0; $i < $listCount; ++$i) {
147 if (strtolower($list[$i]["filename"]) == strtolower($fileName) ||
148 strtolower($list[$i]["stored_filename"]) == strtolower($fileName)) {
149 $list_index = $i;
150 break;
151 }
152 }
153
154 $extracted = "";
155 if ($list_index != -1) {
156 $extracted = $this->_zip->extractByIndex($list_index, PCLZIP_OPT_EXTRACT_AS_STRING);
157 } else {
158 $filename = substr($fileName, 1);
159 $list_index = -1;
160 for ($i = 0; $i < $listCount; ++$i) {
161 if (strtolower($list[$i]["filename"]) == strtolower($fileName) ||
162 strtolower($list[$i]["stored_filename"]) == strtolower($fileName)) {
163 $list_index = $i;
164 break;
165 }
166 }
167 $extracted = $this->_zip->extractByIndex($list_index, PCLZIP_OPT_EXTRACT_AS_STRING);
168 }
169 if ((is_array($extracted)) && ($extracted != 0)) {
170 $contents = $extracted[0]["content"];
171 }
172
173 return $contents;
174 }
175 }
176