Skip to content

Commit 6e4f18c

Browse files
authored
Merge pull request #1585 from seamuslee001/libxml_improve
Ensure that entity_loader disable variable is re-set back to the orig…
2 parents 2d2fe52 + 607378b commit 6e4f18c

File tree

3 files changed

+6
-4
lines changed

3 files changed

+6
-4
lines changed

src/PhpWord/Shared/Html.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,14 +72,15 @@ public static function addHtml($element, $html, $fullHTML = false, $preserveWhit
7272
}
7373

7474
// Load DOM
75-
libxml_disable_entity_loader(true);
75+
$orignalLibEntityLoader = libxml_disable_entity_loader(true);
7676
$dom = new \DOMDocument();
7777
$dom->preserveWhiteSpace = $preserveWhiteSpace;
7878
$dom->loadXML($html);
7979
self::$xpath = new \DOMXPath($dom);
8080
$node = $dom->getElementsByTagName('body');
8181

8282
self::parseNode($node->item(0), $element);
83+
libxml_disable_entity_loader($orignalLibEntityLoader);
8384
}
8485

8586
/**

src/PhpWord/TemplateProcessor.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ protected function readPartWithRels($fileName)
170170
*/
171171
protected function transformSingleXml($xml, $xsltProcessor)
172172
{
173-
libxml_disable_entity_loader(true);
173+
$orignalLibEntityLoader = libxml_disable_entity_loader(true);
174174
$domDocument = new \DOMDocument();
175175
if (false === $domDocument->loadXML($xml)) {
176176
throw new Exception('Could not load the given XML document.');
@@ -180,6 +180,7 @@ protected function transformSingleXml($xml, $xsltProcessor)
180180
if (false === $transformedXml) {
181181
throw new Exception('Could not transform the given XML document.');
182182
}
183+
libxml_disable_entity_loader($orignalLibEntityLoader);
183184

184185
return $transformedXml;
185186
}

tests/PhpWord/_includes/XmlDocument.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,10 +76,10 @@ public function getFileDom($file = 'word/document.xml')
7676
$this->file = $file;
7777

7878
$file = $this->path . '/' . $file;
79-
libxml_disable_entity_loader(false);
79+
$orignalLibEntityLoader = libxml_disable_entity_loader(false);
8080
$this->dom = new \DOMDocument();
8181
$this->dom->load($file);
82-
libxml_disable_entity_loader(true);
82+
libxml_disable_entity_loader($orignalLibEntityLoader);
8383

8484
return $this->dom;
8585
}

0 commit comments

Comments
 (0)