2009-12-27 3 views
0

я хочу изменить слово :)) к SMILY IMG перед выводом его из базы данных с PHP Как я могу это сделатьзаменяя некоторые изображения с определенными словами

+0

http://www.hawkee.com/snippet/1834/ – miku

+0

@MYYN, этот пример использует функцию 'ereg_'. 1) В этом случае я не вижу необходимости в регулярном выражении, и 2) при использовании регулярного выражения рекомендуется выбрать 'preg_' -пользовательство над' ereg_', поскольку последнее либо уже устарело, либо скоро будет. –

ответ

3

решение будет использовать функцию str_replace.

Например (Использование «:-)», который мне нравится больше, чем ваш «:))» - лишь дело вкуса ^^ До вас использовать «правильный»):

$str = "This is a sentence with a smiley :-)"; 

$new_str = str_replace(
    array(
     ':-)', 
    ), 
    array(
     '<img src="smiley.png" alt=":-)" />' 
    ), 
    $str 
); 

echo $new_str; 

Получит вам этот вывод:

This is a sentence with a smiley <img src="smiley.png" alt=":-)" /> 

т.е. смайлик был заменен с изображением.


Обратите внимание, что я использовал массив для первого и второго параметра, при звонке str_replace: если у вас есть другие смайлики, вы можете просто добавить их в этих двух массивов (первый массив, являющихся для «поиска» строка , а второй для «замены»).

(То, что я имею в виду: нет необходимости вызывать str_replace несколько раз: один раз, используя массивы, должны быть достаточно для нескольких замен)


И, как заметка на полях: Я использовал оригинальный " текст "смайлика для атрибута alt тега img: таким образом, если изображение не может быть отображено, браузер отобразит текстовую версию смайлика - что лучше, чем ничего.

+0

@ Паскаль МАРТИН: Побей меня. – BenTheDesigner

+0

спасибо большое, что я сделал это –

+0

Добро пожаловать :-) Удачи! –

1

Вы могли бы использовать что-то вроде:

str_replace(':))', '<img src="path to your image" title="image title" />', $string); 

Если вы хотите заменить несколько «смайликов», использование массивов:

$find = array(
      ':)', 
      ':(' 
     ); 
$replace = array(
       '<img src="path to happy image" title="" />', 
       '<img src="path to sad image" title="" />'); 
      ); 
str_replace($find, $replace, $string); 
0

Вы можете использовать что-то вроде следующего. Создайте новую замену для каждого изображения, которое у вас есть.

$message = str_replace(":)", "<img src='happy.png' alt=':)'/>", $message); 
$message = str_replace(":(", "<img src='unhappy.png' alt=':('/>", $message); 

Это превратит $message"I'm happy :)" в "I'm happy <img src='happy.png' alt=':)'/>". Alt tag показывает оригинальный смайлик, когда пользователи не видят изображения.

Смежные вопросы