Моя цель - проверить, есть ли в сообщении смайлики или нет, если да, я собираюсь их преобразовать. У меня есть проблема, чтобы узнать, сколько смайликов в строке.
Пример:
$string = ":+1::+1::+1:"; //can be any string that has :something: between ::
цель здесь состоит в том, чтобы получить: +1: (все они), но я попробовал два шаблона и продолжаю получать только 1 совпадение.
preg_match_all('/:(.*?):/', $string, $emojis, PREG_SET_ORDER); // $emojis is declared as $emojis='' at the beginning.
preg_match_all('/:(\S+):/', $string, $emojis, PREG_SET_ORDER);
Остальная часть кода
после получения матчей я делаю это:
if (isset($emojis[0]))
{
$stringMap = file_get_contents("/api/common/emoji-map.json");
$jsonMap = json_decode($stringMap, true);
foreach ($emojis as $key => $value) {
$emojiColon = $value[0];
$emoji = key_exists($emojiColon, $jsonMap) ? $jsonMap[$emojiColon] : '';
$newBody = str_replace($emojiColon, $emoji, $newBody);
}
}
Буду признателен за любую помощь или предложения, спасибо.