Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Замена слова в тексте через str_replace()
NitroGenerate  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Абориген
*****

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 236
Пользователь №: 27946
На форуме: 5 лет, 6 месяцев, 20 дней
Карма: 11




Всем привет. Прошу вашей помощи. Стоит задача выделить первое слово в тексте жирным шрифтом.

$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); // по идее должен заменить первый элемент на тот же, только выделенный.
// На практике если в тексте встретится такой же элемент он будет тоже выделенный.


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

Как мне побороть это повторное выделение ?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Winston  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме




******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 9509
Пользователь №: 18161
На форуме: 7 лет, 5 месяцев, 16 дней
Карма: 552




str_replace($full_exp_mass[0], "<b>".$full_exp_mass[0]."</b>", $full_exp_mass[0])
PMСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Winston  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме




******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 9509
Пользователь №: 18161
На форуме: 7 лет, 5 месяцев, 16 дней
Карма: 552




Или можно гораздо проще сделать
Свернутый текст
$str = 'Привет Мир! Тут должно быть выделено только первое слово, а на практике, если в тексте встречается еще такое же слово Привет , отделенное пробелом, то оно тоже будет выделено, вот так.';
echo preg_replace('/^[^ ]+/', '<b>$0</b>', $str);
PMСайт пользователя
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
NitroGenerate  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Абориген
*****

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 236
Пользователь №: 27946
На форуме: 5 лет, 6 месяцев, 20 дней
Карма: 11




$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:
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса