| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  | <?php | 
					
						
							|  |  |  | /** | 
					
						
							|  |  |  |  * PHPExcel | 
					
						
							|  |  |  |  * | 
					
						
							| 
									
										
										
										
											2015-05-02 22:50:37 +00:00
										 |  |  |  * Copyright (c) 2006 - 2015 PHPExcel | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  |  * | 
					
						
							|  |  |  |  * This library is free software; you can redistribute it and/or | 
					
						
							|  |  |  |  * modify it under the terms of the GNU Lesser General Public | 
					
						
							|  |  |  |  * License as published by the Free Software Foundation; either | 
					
						
							|  |  |  |  * version 2.1 of the License, or (at your option) any later version. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * This library is distributed in the hope that it will be useful, | 
					
						
							|  |  |  |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
					
						
							|  |  |  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | 
					
						
							|  |  |  |  * Lesser General Public License for more details. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * You should have received a copy of the GNU Lesser General Public | 
					
						
							|  |  |  |  * License along with this library; if not, write to the Free Software | 
					
						
							|  |  |  |  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * @category   PHPExcel | 
					
						
							| 
									
										
										
										
											2015-05-12 09:22:06 +00:00
										 |  |  |  * @package    PHPExcel_Shared | 
					
						
							| 
									
										
										
										
											2015-05-02 22:50:37 +00:00
										 |  |  |  * @copyright  Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) | 
					
						
							| 
									
										
										
										
											2015-05-12 09:22:06 +00:00
										 |  |  |  * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt    LGPL | 
					
						
							|  |  |  |  * @version    ##VERSION##, ##DATE##
 | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if (!defined('DATE_W3C')) { | 
					
						
							| 
									
										
										
										
											2015-05-16 17:00:31 +00:00
										 |  |  |     define('DATE_W3C', 'Y-m-d\TH:i:sP'); | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if (!defined('DEBUGMODE_ENABLED')) { | 
					
						
							| 
									
										
										
										
											2015-05-16 17:00:31 +00:00
										 |  |  |     define('DEBUGMODE_ENABLED', false); | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /** | 
					
						
							|  |  |  |  * PHPExcel_Shared_XMLWriter | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * @category   PHPExcel | 
					
						
							| 
									
										
										
										
											2015-05-12 09:22:06 +00:00
										 |  |  |  * @package    PHPExcel_Shared | 
					
						
							| 
									
										
										
										
											2015-05-02 22:50:37 +00:00
										 |  |  |  * @copyright  Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  |  */ | 
					
						
							| 
									
										
										
										
											2015-05-16 17:00:31 +00:00
										 |  |  | class PHPExcel_Shared_XMLWriter extends XMLWriter | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2015-05-12 09:22:06 +00:00
										 |  |  |     /** Temporary storage method */ | 
					
						
							|  |  |  |     const STORAGE_MEMORY    = 1; | 
					
						
							| 
									
										
										
										
											2015-05-16 17:00:31 +00:00
										 |  |  |     const STORAGE_DISK      = 2; | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-05-12 09:22:06 +00:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * Temporary filename | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @var string | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2015-05-16 17:00:31 +00:00
										 |  |  |     private $_tempFileName  = ''; | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-05-12 09:22:06 +00:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * Create a new PHPExcel_Shared_XMLWriter instance | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @param int        $pTemporaryStorage            Temporary storage location | 
					
						
							|  |  |  |      * @param string    $pTemporaryStorageFolder    Temporary storage folder | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2015-05-16 21:09:31 +00:00
										 |  |  |     public function __construct($pTemporaryStorage = self::STORAGE_MEMORY, $pTemporaryStorageFolder = null) | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2015-05-12 09:22:06 +00:00
										 |  |  |         // Open temporary storage
 | 
					
						
							|  |  |  |         if ($pTemporaryStorage == self::STORAGE_MEMORY) { | 
					
						
							|  |  |  |             $this->openMemory(); | 
					
						
							|  |  |  |         } else { | 
					
						
							|  |  |  |             // Create temporary filename
 | 
					
						
							| 
									
										
										
										
											2015-05-16 17:00:31 +00:00
										 |  |  |             if ($pTemporaryStorageFolder === null) { | 
					
						
							| 
									
										
										
										
											2015-05-12 09:22:06 +00:00
										 |  |  |                 $pTemporaryStorageFolder = PHPExcel_Shared_File::sys_get_temp_dir(); | 
					
						
							| 
									
										
										
										
											2015-05-16 17:00:31 +00:00
										 |  |  |             } | 
					
						
							| 
									
										
										
										
											2015-05-12 09:22:06 +00:00
										 |  |  |             $this->_tempFileName = @tempnam($pTemporaryStorageFolder, 'xml'); | 
					
						
							| 
									
										
										
										
											2010-11-09 12:31:59 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-05-12 09:22:06 +00:00
										 |  |  |             // Open storage
 | 
					
						
							|  |  |  |             if ($this->openUri($this->_tempFileName) === false) { | 
					
						
							|  |  |  |                 // Fallback to memory...
 | 
					
						
							|  |  |  |                 $this->openMemory(); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2010-11-09 12:31:59 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-05-12 09:22:06 +00:00
										 |  |  |         // Set default values
 | 
					
						
							|  |  |  |         if (DEBUGMODE_ENABLED) { | 
					
						
							|  |  |  |             $this->setIndent(true); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-05-12 09:22:06 +00:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * Destructor | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2015-05-16 17:00:31 +00:00
										 |  |  |     public function __destruct() | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2015-05-12 09:22:06 +00:00
										 |  |  |         // Unlink temporary files
 | 
					
						
							|  |  |  |         if ($this->_tempFileName != '') { | 
					
						
							|  |  |  |             @unlink($this->_tempFileName); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-05-12 09:22:06 +00:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * Get written data | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @return $data | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2015-05-16 17:00:31 +00:00
										 |  |  |     public function getData() | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2015-05-12 09:22:06 +00:00
										 |  |  |         if ($this->_tempFileName == '') { | 
					
						
							|  |  |  |             return $this->outputMemory(true); | 
					
						
							|  |  |  |         } else { | 
					
						
							|  |  |  |             $this->flush(); | 
					
						
							|  |  |  |             return file_get_contents($this->_tempFileName); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-05-12 09:22:06 +00:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * Fallback method for writeRaw, introduced in PHP 5.2 | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @param string $text | 
					
						
							|  |  |  |      * @return string | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public function writeRawData($text) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         if (is_array($text)) { | 
					
						
							| 
									
										
										
										
											2015-05-13 10:27:01 +00:00
										 |  |  |             $text = implode("\n", $text); | 
					
						
							| 
									
										
										
										
											2015-05-12 09:22:06 +00:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2012-07-20 21:35:53 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-05-12 09:22:06 +00:00
										 |  |  |         if (method_exists($this, 'writeRaw')) { | 
					
						
							|  |  |  |             return $this->writeRaw(htmlspecialchars($text)); | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2010-11-09 12:31:59 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-05-12 09:22:06 +00:00
										 |  |  |         return $this->text($text); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  | } |