ParseUrl: Perform entitity decode afterwards

This commit is contained in:
Michael 2021-03-22 06:47:04 +00:00
parent ae0fc112b1
commit 4db6f11884

View file

@ -466,8 +466,7 @@ class ParseUrl
$list = $xpath->query("//script[@type='application/ld+json']"); $list = $xpath->query("//script[@type='application/ld+json']");
foreach ($list as $node) { foreach ($list as $node) {
if (!empty($node->nodeValue)) { if (!empty($node->nodeValue)) {
$nodevalue = html_entity_decode($node->nodeValue, ENT_COMPAT, 'UTF-8'); if ($jsonld = json_decode($node->nodeValue, true)) {
if ($jsonld = json_decode($nodevalue, true)) {
$siteinfo = self::parseParts($siteinfo, $jsonld); $siteinfo = self::parseParts($siteinfo, $jsonld);
} }
} }
@ -701,10 +700,16 @@ class ParseUrl
if ($numeric_keys) { if ($numeric_keys) {
foreach ($jsonld as $part) { foreach ($jsonld as $part) {
$siteinfo = self::parseParts($siteinfo, $part); $siteinfo = self::parseParts($siteinfo, $part);
} }
} }
} }
array_walk_recursive($siteinfo, function (&$element) {
if (is_string($element)) {
$element = html_entity_decode($element, ENT_COMPAT, 'UTF-8');
}
});
return $siteinfo; return $siteinfo;
} }