summaryrefslogtreecommitdiffstats
path: root/utility/articleenhancer/articleenhancer.php
diff options
context:
space:
mode:
Diffstat (limited to 'utility/articleenhancer/articleenhancer.php')
-rw-r--r--utility/articleenhancer/articleenhancer.php10
1 files changed, 9 insertions, 1 deletions
diff --git a/utility/articleenhancer/articleenhancer.php b/utility/articleenhancer/articleenhancer.php
index 76bb0fa9f..c9b61a135 100644
--- a/utility/articleenhancer/articleenhancer.php
+++ b/utility/articleenhancer/articleenhancer.php
@@ -60,8 +60,16 @@ abstract class ArticleEnhancer {
if(preg_match($regex, $item->getUrl())) {
$file = $this->fileFactory->getFile($item->getUrl(), $this->maximumTimeout);
+
+ // convert encoding by detecting charset from header
+ $contentType = $file->headers['content-type'];
+ if( preg_match( '/(?<=charset=)[^;]*/', $contentType, $matches ) )
+ $body = mb_convert_encoding($file->body, 'HTML-ENTITIES', $matches[0]);
+ else
+ $body = $file->body;
+
$dom = new \DOMDocument();
- @$dom->loadHTML($file->body);
+ @$dom->loadHTML($body);
$xpath = new \DOMXpath($dom);
$xpathResult = $xpath->evaluate($search);