| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 | <?phpnamespace PhpOffice\PhpSpreadsheet\Shared;class XMLWriter extends \XMLWriter{    public static $debugEnabled = false;    /** Temporary storage method */    const STORAGE_MEMORY = 1;    const STORAGE_DISK = 2;    /**     * Temporary filename.     *     * @var string     */    private $tempFileName = '';    /**     * Create a new XMLWriter instance.     *     * @param int $pTemporaryStorage Temporary storage location     * @param string $pTemporaryStorageFolder Temporary storage folder     */    public function __construct($pTemporaryStorage = self::STORAGE_MEMORY, $pTemporaryStorageFolder = null)    {        // Open temporary storage        if ($pTemporaryStorage == self::STORAGE_MEMORY) {            $this->openMemory();        } else {            // Create temporary filename            if ($pTemporaryStorageFolder === null) {                $pTemporaryStorageFolder = File::sysGetTempDir();            }            $this->tempFileName = @tempnam($pTemporaryStorageFolder, 'xml');            // Open storage            if ($this->openUri($this->tempFileName) === false) {                // Fallback to memory...                $this->openMemory();            }        }        // Set default values        if (self::$debugEnabled) {            $this->setIndent(true);        }    }    /**     * Destructor.     */    public function __destruct()    {        // Unlink temporary files        if ($this->tempFileName != '') {            @unlink($this->tempFileName);        }    }    /**     * Get written data.     *     * @return string     */    public function getData()    {        if ($this->tempFileName == '') {            return $this->outputMemory(true);        }        $this->flush();        return file_get_contents($this->tempFileName);    }    /**     * Wrapper method for writeRaw.     *     * @param string|string[] $text     *     * @return bool     */    public function writeRawData($text)    {        if (is_array($text)) {            $text = implode("\n", $text);        }        return $this->writeRaw(htmlspecialchars($text));    }}
 |