From: Hypolite Petovan Date: Wed, 11 Nov 2020 23:28:26 +0000 (-0500) Subject: Prevent multiple replacements for the same emoji in Protocol\ActivityPub\Processor... X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=a8f16788f4c765634eef44b4bccb355827e11db1;p=friendica.git Prevent multiple replacements for the same emoji in Protocol\ActivityPub\Processor::replaceEmojis --- diff --git a/src/Protocol/ActivityPub/Processor.php b/src/Protocol/ActivityPub/Processor.php index ebaa72db5f..8f89b17f80 100644 --- a/src/Protocol/ActivityPub/Processor.php +++ b/src/Protocol/ActivityPub/Processor.php @@ -75,10 +75,15 @@ class Processor */ private static function replaceEmojis($body, array $emojis) { - foreach ($emojis as $emoji) { - $replace = '[class=emoji mastodon][img=' . $emoji['href'] . ']' . $emoji['name'] . '[/img][/class]'; - $body = str_replace($emoji['name'], $replace, $body); - } + $body = strtr($body, + array_combine( + array_column($emojis, 'name'), + array_map(function ($emoji) { + return '[class=emoji mastodon][img=' . $emoji['href'] . ']' . $emoji['name'] . '[/img][/class]'; + }, $emojis) + ) + ); + return $body; }