web/lib/Zend/Search/Lucene/Document/Docx.php
changeset 1230 68c69c656a2c
parent 807 877f952ae2bd
equal deleted inserted replaced
1229:5a6b6e770365 1230:68c69c656a2c
    13  * to license@zend.com so we can send you a copy immediately.
    13  * to license@zend.com so we can send you a copy immediately.
    14  *
    14  *
    15  * @category   Zend
    15  * @category   Zend
    16  * @package    Zend_Search_Lucene
    16  * @package    Zend_Search_Lucene
    17  * @subpackage Document
    17  * @subpackage Document
    18  * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
    18  * @copyright  Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
    19  * @license    http://framework.zend.com/license/new-bsd     New BSD License
    19  * @license    http://framework.zend.com/license/new-bsd     New BSD License
    20  * @version    $Id: Docx.php 24593 2012-01-05 20:35:02Z matthew $
    20  * @version    $Id$
    21  */
    21  */
    22 
    22 
    23 /** Zend_Search_Lucene_Document_OpenXml */
    23 /** Zend_Search_Lucene_Document_OpenXml */
    24 require_once 'Zend/Search/Lucene/Document/OpenXml.php';
    24 require_once 'Zend/Search/Lucene/Document/OpenXml.php';
       
    25 
       
    26 /** Zend_Xml_Security */
       
    27 require_once 'Zend/Xml/Security.php';
    25 
    28 
    26 /**
    29 /**
    27  * Docx document.
    30  * Docx document.
    28  *
    31  *
    29  * @category   Zend
    32  * @category   Zend
    30  * @package    Zend_Search_Lucene
    33  * @package    Zend_Search_Lucene
    31  * @subpackage Document
    34  * @subpackage Document
    32  * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
    35  * @copyright  Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
    33  * @license    http://framework.zend.com/license/new-bsd     New BSD License
    36  * @license    http://framework.zend.com/license/new-bsd     New BSD License
    34  */
    37  */
    35 class Zend_Search_Lucene_Document_Docx extends Zend_Search_Lucene_Document_OpenXml {
    38 class Zend_Search_Lucene_Document_Docx extends Zend_Search_Lucene_Document_OpenXml {
    36     /**
    39     /**
    37      * Xml Schema - WordprocessingML
    40      * Xml Schema - WordprocessingML
    65         $relationsXml = $package->getFromName('_rels/.rels');
    68         $relationsXml = $package->getFromName('_rels/.rels');
    66         if ($relationsXml === false) {
    69         if ($relationsXml === false) {
    67             require_once 'Zend/Search/Lucene/Exception.php';
    70             require_once 'Zend/Search/Lucene/Exception.php';
    68             throw new Zend_Search_Lucene_Exception('Invalid archive or corrupted .docx file.');
    71             throw new Zend_Search_Lucene_Exception('Invalid archive or corrupted .docx file.');
    69         }
    72         }
    70         $relations = simplexml_load_string($relationsXml);
    73         $relations = Zend_Xml_Security::scan($relationsXml);
    71         foreach($relations->Relationship as $rel) {
    74         foreach($relations->Relationship as $rel) {
    72             if ($rel ["Type"] == Zend_Search_Lucene_Document_OpenXml::SCHEMA_OFFICEDOCUMENT) {
    75             if ($rel ["Type"] == Zend_Search_Lucene_Document_OpenXml::SCHEMA_OFFICEDOCUMENT) {
    73                 // Found office document! Read in contents...
    76                 // Found office document! Read in contents...
    74                 $contents = simplexml_load_string($package->getFromName(
    77                 $contents = Zend_Xml_Security::scan($package->getFromName(
    75                                                                 $this->absoluteZipPath(dirname($rel['Target'])
    78                                                                 $this->absoluteZipPath(dirname($rel['Target'])
    76                                                               . '/'
    79                                                               . '/'
    77                                                               . basename($rel['Target']))
    80                                                               . basename($rel['Target']))
    78                                                                        ));
    81                                                                        ));
    79 
    82