diff --git a/src/QUI/AmazonAffiliate/LinkParser.php b/src/QUI/AmazonAffiliate/LinkParser.php index 1c9a860d4924d4455b689fbf44390b1417696edc..76183509d721011aada050b05a427dcfa726fc78 100644 --- a/src/QUI/AmazonAffiliate/LinkParser.php +++ b/src/QUI/AmazonAffiliate/LinkParser.php @@ -30,7 +30,7 @@ class LinkParser $Config = \QUI::getPackage('quiqqer/amazon-affiliate')->getConfig(); // Turn domains into regex OR expression (e.g. "de|at|com|co.uk" - $domainsRegex = implode('|', self::DOMAINS); + $domainsRegex = str_replace('.','\.', implode('|', self::DOMAINS)); // Regex gets for all Amazon URLs and their paths under the above defined domains $string = preg_replace_callback( @@ -62,6 +62,21 @@ class LinkParser $string ); + $string = preg_replace_callback( + "/(?<preview><div data-oembed-url=\"(?<url>http(?:s)?:\/\/(?:www\.)?amazon\.(?<domain>de|com|at|co\.uk)\/[\d\w-\._~:\/\?#\[\]@!$&'\(\)\*+,;=`]*)\">.*<\/script>.*<\/div>)/isU", + function ($matches) { + // $matches['url'] contains the whole URL and $matches['domain'] contains the TLD (de, com, etc.) + + $url = $matches['url']; + $preview = $matches['preview']; + + $replacement = "<a href=\"$url\">$preview</a>"; + + return $replacement; + }, + $string + ); + return $string; } }