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
| <?php
namespace App;
use PhpOffice\PhpWord\IOFactory;
class DocParser { private $parser;
private $text = '';
public function __construct($filename) { $this->parser = IOFactory::load($filename); }
public function getText() { $sections = $this->parser->getSections();
foreach ($sections as $section) { $elements = $section->getElements(); $this->parseElements($elements); }
return $this->text; }
private function parseElements($elements) { foreach ($elements as $element) { $this->parseElement($element); } }
private function parseElement($element) { if (method_exists($element, 'getElements')) { $childElements = $element->getElements(); $this->parseElements($childElements); }
if (method_exists($element, 'getText')) { $this->text .= $element->getText(); } } }
|