]> git.mxchange.org Git - friendica.git/commitdiff
Prevent multiple replacements for the same emoji in Protocol\ActivityPub\Processor...
authorHypolite Petovan <hypolite@mrpetovan.com>
Wed, 11 Nov 2020 23:28:26 +0000 (18:28 -0500)
committerHypolite Petovan <hypolite@mrpetovan.com>
Wed, 11 Nov 2020 23:28:26 +0000 (18:28 -0500)
src/Protocol/ActivityPub/Processor.php

index ebaa72db5feb9df3621df92d8039b642a2d4d83a..8f89b17f809fffa0ee44ec3c6636a3df2a304242 100644 (file)
@@ -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;
        }