[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Замена слова в тексте через str_replace()
NitroGenerate
Всем привет. Прошу вашей помощи. Стоит задача выделить первое слово в тексте жирным шрифтом.

$full=$last['text']." ".$phone." ".$last['contacts']; // соединяем поля в единый текст
$full = preg_replace("/\s+/", " ", $full); // удаляем лишние пробелы, переносы строк и табуляцию
$full_exp_mass = explode(" ", $full); // раскидываем весь текст в массив
$full = str_replace($full_exp_mass[0], "<b>".$full_exp_mass[0]."</b>", $full); // по идее должен заменить первый элемент на тот же, только выделенный.
// На практике если в тексте встретится такой же элемент он будет тоже выделенный.


Пример:
Цитата
Привет Мир! Тут должно быть выделено только первое слово, а на практике, если в тексте встречается еще такое же слово Привет , отделенное пробелом, то оно тоже будет выделено, вот так.

Как мне побороть это повторное выделение ?



Спустя 11 минут, 34 секунды (21.08.2012 - 13:28) Winston написал(а):
str_replace($full_exp_mass[0], "<b>".$full_exp_mass[0]."</b>", $full_exp_mass[0])

Спустя 7 минут, 51 секунда (21.08.2012 - 13:36) Winston написал(а):
Или можно гораздо проще сделать
Свернутый текст
$str = 'Привет Мир! Тут должно быть выделено только первое слово, а на практике, если в тексте встречается еще такое же слово Привет , отделенное пробелом, то оно тоже будет выделено, вот так.';
echo preg_replace('/^[^ ]+/', '<b>$0</b>', $str);

Спустя 55 минут, 4 секунды (21.08.2012 - 14:31) NitroGenerate написал(а):
$full=$last['text']." ".$phone." ".$last['contacts']; 
$full = preg_replace("/\s+/", " ", $full);
$full_exp_mass = explode(" ", $full);
$full_exp_mass[0]="<b>".$full_exp_mass[0]."</b>";
/* $full = str_replace($full_exp_mass[0], "<b>".$full_exp_mass[0]."</b>", $full); */
$full = implode(' ', $full_exp_mass);

:rolleyes:
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.