Overview

Packages

  • PHP
  • PHPWord

Classes

  • PHPWord
  • PHPWord_Autoloader
  • PHPWord_DocumentProperties
  • PHPWord_HashTable
  • PHPWord_IOFactory
  • PHPWord_Media
  • PHPWord_Section
  • PHPWord_Section_Footer
  • PHPWord_Section_Footer_PreserveText
  • PHPWord_Section_Header
  • PHPWord_Section_Image
  • PHPWord_Section_Link
  • PHPWord_Section_ListItem
  • PHPWord_Section_MemoryImage
  • PHPWord_Section_Object
  • PHPWord_Section_PageBreak
  • PHPWord_Section_Settings
  • PHPWord_Section_Table
  • PHPWord_Section_Table_Cell
  • PHPWord_Section_Table_Row
  • PHPWord_Section_Text
  • PHPWord_Section_TextBreak
  • PHPWord_Section_TextRun
  • PHPWord_Section_Title
  • PHPWord_Shared_Drawing
  • PHPWord_Shared_File
  • PHPWord_Shared_Font
  • PHPWord_Shared_String
  • PHPWord_Shared_XMLWriter
  • PHPWord_Shared_ZipStreamWrapper
  • PHPWord_Style
  • PHPWord_Style_Cell
  • PHPWord_Style_Font
  • PHPWord_Style_Image
  • PHPWord_Style_ListItem
  • PHPWord_Style_Paragraph
  • PHPWord_Style_Row
  • PHPWord_Style_Tab
  • PHPWord_Style_Table
  • PHPWord_Style_TableFull
  • PHPWord_Style_Tabs
  • PHPWord_Style_TOC
  • PHPWord_Template
  • PHPWord_TOC
  • PHPWord_Writer_ODText
  • PHPWord_Writer_ODText_Content
  • PHPWord_Writer_ODText_Manifest
  • PHPWord_Writer_ODText_Meta
  • PHPWord_Writer_ODText_Mimetype
  • PHPWord_Writer_ODText_Styles
  • PHPWord_Writer_ODText_WriterPart
  • PHPWord_Writer_RTF
  • PHPWord_Writer_Word2007
  • PHPWord_Writer_Word2007_Base
  • PHPWord_Writer_Word2007_ContentTypes
  • PHPWord_Writer_Word2007_DocProps
  • PHPWord_Writer_Word2007_Document
  • PHPWord_Writer_Word2007_DocumentRels
  • PHPWord_Writer_Word2007_Footer
  • PHPWord_Writer_Word2007_Header
  • PHPWord_Writer_Word2007_Rels
  • PHPWord_Writer_Word2007_Styles
  • PHPWord_Writer_Word2007_WriterPart

Interfaces

  • PHPWord_Writer_IWriter

Exceptions

  • PHPWord_Exception
  • Overview
  • Package
  • Class
  • Tree
  1: <?php
  2: /**
  3:  * PHPWord
  4:  *
  5:  * Copyright (c) 2013 PHPWord
  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   PHPWord
 22:  * @package    PHPWord
 23:  * @copyright  Copyright (c) 2013 PHPWord
 24:  * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt    LGPL
 25:  * @version    0.7.0
 26:  */
 27: 
 28: /** Register new zip wrapper */
 29: PHPWord_Shared_ZipStreamWrapper::register();
 30: 
 31: /**
 32:  * Class PHPWord_Shared_ZipStreamWrapper
 33:  */
 34: class PHPWord_Shared_ZipStreamWrapper
 35: {
 36:     /**
 37:      * Internal ZipAcrhive
 38:      *
 39:      * @var ZipAcrhive
 40:      */
 41:     private $_archive;
 42: 
 43:     /**
 44:      * Filename in ZipAcrhive
 45:      *
 46:      * @var string
 47:      */
 48:     private $_fileNameInArchive = '';
 49: 
 50:     /**
 51:      * Position in file
 52:      *
 53:      * @var int
 54:      */
 55:     private $_position = 0;
 56: 
 57:     /**
 58:      * Data
 59:      *
 60:      * @var mixed
 61:      */
 62:     private $_data = '';
 63: 
 64:     /**
 65:      * Register wrapper
 66:      */
 67:     public static function register()
 68:     {
 69:         @stream_wrapper_unregister("zip");
 70:         @stream_wrapper_register("zip", __CLASS__);
 71:     }
 72: 
 73:     /**
 74:      * Open stream
 75:      */
 76:     public function stream_open($path, $mode, $options, &$opened_path)
 77:     {
 78:         // Check for mode
 79:         if ($mode{0} != 'r') {
 80:             throw new Exception('Mode ' . $mode . ' is not supported. Only read mode is supported.');
 81:         }
 82: 
 83:         // Parse URL
 84:         $url = @parse_url($path);
 85: 
 86:         // Fix URL
 87:         if (!is_array($url)) {
 88:             $url['host'] = substr($path, strlen('zip://'));
 89:             $url['path'] = '';
 90:         }
 91:         if (strpos($url['host'], '#') !== false) {
 92:             if (!isset($url['fragment'])) {
 93:                 $url['fragment'] = substr($url['host'], strpos($url['host'], '#') + 1) . $url['path'];
 94:                 $url['host'] = substr($url['host'], 0, strpos($url['host'], '#'));
 95:                 unset($url['path']);
 96:             }
 97:         } else {
 98:             $url['host'] = $url['host'] . $url['path'];
 99:             unset($url['path']);
100:         }
101: 
102:         // Open archive
103:         $this->_archive = new ZipArchive();
104:         $this->_archive->open($url['host']);
105: 
106:         $this->_fileNameInArchive = $url['fragment'];
107:         $this->_position = 0;
108:         $this->_data = $this->_archive->getFromName($this->_fileNameInArchive);
109: 
110:         return true;
111:     }
112: 
113:     /**
114:      * Stat stream
115:      */
116:     public function stream_stat()
117:     {
118:         return $this->_archive->statName($this->_fileNameInArchive);
119:     }
120: 
121:     /**
122:      * Read stream
123:      */
124:     function stream_read($count)
125:     {
126:         $ret = substr($this->_data, $this->_position, $count);
127:         $this->_position += strlen($ret);
128:         return $ret;
129:     }
130: 
131:     /**
132:      * Tell stream
133:      */
134:     public function stream_tell()
135:     {
136:         return $this->_position;
137:     }
138: 
139:     /**
140:      * EOF stream
141:      */
142:     public function stream_eof()
143:     {
144:         return $this->_position >= strlen($this->_data);
145:     }
146: 
147:     /**
148:      * Seek stream
149:      */
150:     public function stream_seek($offset, $whence)
151:     {
152:         switch ($whence) {
153:             case SEEK_SET:
154:                 if ($offset < strlen($this->_data) && $offset >= 0) {
155:                     $this->_position = $offset;
156:                     return true;
157:                 } else {
158:                     return false;
159:                 }
160:                 break;
161: 
162:             case SEEK_CUR:
163:                 if ($offset >= 0) {
164:                     $this->_position += $offset;
165:                     return true;
166:                 } else {
167:                     return false;
168:                 }
169:                 break;
170: 
171:             case SEEK_END:
172:                 if (strlen($this->_data) + $offset >= 0) {
173:                     $this->_position = strlen($this->_data) + $offset;
174:                     return true;
175:                 } else {
176:                     return false;
177:                 }
178:                 break;
179: 
180:             default:
181:                 return false;
182:         }
183:     }
184: }
185: 
PHPWord API Docs API documentation generated by ApiGen 2.8.0