Blame view
sources/3rdparty/phpdocx/classes/Parser.inc
2.09 KB
|
31b7f2792
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 |
<?php
/**
* Parse DOCX file
*
* @category Phpdocx
* @package parser
* @copyright Copyright (c) Narcea Producciones Multimedia S.L.
* (http://www.2mdc.com)
* @license LGPL
* @version 3.0
* @link http://www.phpdocx.com
* @since File available since Release 3.0
*/
class Parser
{
/**
*
* @access private
* @var string
*/
private static $_instance = NULL;
/**
*
* @access private
* @var array
*/
private $_xml = array();
/**
* Construct
*
* @access private
*/
private function __construct()
{
}
/**
* Destruct
*
* @access public
*/
public function __destruct()
{
}
/**
* Magic method, returns current XML
*
* @access public
* @return string Return current XML
*/
public function __toString()
{
return $this->_xml;
}
/**
* Singleton, return instance of class
*
* @access public
* @return CreateText
* @static
*/
public static function getInstance()
{
if (self::$_instance == NULL) {
self::$_instance = new Parser();
}
return self::$_instance;
}
/**
* Getter. XHTML
*
* @access public
*/
public function getXML()
{
return $this->_xml;
}
/**
* Read DOCX file and extract WordML content
*
* @access public
* @param $path File path
*/
public function readFile($path)
{
if (file_exists($path)) {
// open DOCX file
$docx = new ZipArchive();
$docx->open($path);
// read all files and add them to xml array
for ($i = 0; $i < $docx->numFiles; $i++) {
$stat = $docx->statIndex($i);
$this->_xml[$stat['name']] = new SimpleXMLElement($docx->getFromName($stat['name']));
}
// close DOCX file
$docx->close();
} else {
throw new Exception('File does not exist');
}
}
}
|