Графические смайлы. В чём ошибка?

Bars

Новичок
Это продолжение этой темы.

Преобразование стал делать вот таким скриптом:
PHP:
$text = htmlspecialchars($gettext);

$smilies = array("smile", "sneaky", "eek"); // Массив допустимых смайлов
foreach ($smilies as $smile){
	$find[] = "*$smile*";
	$replace[] = "<img src=\"/tpl/img/smiles/$smile.gif\" align=\"absmiddle\" />";
}

$text = preg_replace($find, $replace, $text);
После такого преобразования смайлы работают, но около них остаются звёздочки (*):
 

WMix

герр M:)ller
Партнер клуба
или прочти заного все по своей ссылке, или оставь так даже оригинальней,...
 

Bars

Новичок
Я всё прочитал, но те варианты не работают (PHP выдаёт ошибку). Да и зачем мучатсья, когда есть уже почти рабочий вариант? Я, конечно, понимаю, что $find[] ищет по массиву и игнорирует *, но как сделать, чтобы он не добавлял * по краям смайлов, а заменял вместе с ними?
 

Bars

Новичок
Bars
замени preg_replace на str_replace
Огромное спасибо! Честно говоря, я уже не хотел это делать, потому что перед заданием вопроса уже пробовал менять на str_replace... Но работать стало только сейчас. Я, наверное, тогда что-то задел и испортил :)
 

uid

Новичок
перед написанием сообщения я помолился Расмусу, чтобы твой код заработал
 
  • Like
Реакции: WMix
Сверху