Я анализирую сообщение стиля неофициального чата для настроений и другой информации. Мне нужно, чтобы все смайлики заменялись их фактическим значением, чтобы облегчить систему синтаксическому анализу сообщения.PHP - Замена смайлика со значением
На данный момент у меня есть следующий код:
$str = "Am I :) or :(today?";
$emoticons = array(
':)' => 'happy',
':]' => 'happy',
':(' => 'sad',
':[' => 'sad',
);
$str = str_replace(array_keys($emoticons), array_values($emoticons), $str);
Это делает прямую замену строки, и, следовательно, не принимает во внимание, если смайлик окружен другими персонажами.
Как использовать регулярное выражение и preg_replace
, чтобы определить, действительно ли он является смайликом, а не частью строки?
Также как я могу расширить свой массив так, чтобы, например, элемент happy
мог содержать обе записи; :)
и :]
?