| 12
 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();
 }
 }
 }
 
 |