Доброго времени суток. Столкнулся с небольшой трудностью.. хотя на первый взгляд показалось просто, но вот что-то не получается.
Значит мне нужно выделить в строке жирным подстроки, которые искал пользователь.
Сначала сделал вот так:
$t[0] = str_ireplace ("$d","<b>$d</b>",$t[0]); где $t[0] - строка в которой заменяем , а $d - то, что ищет пользователь.
Но получается из строки
"Мама мыла раму"
с запросом например "мам" эта функция возвращает
"<b>мам</b>а мыла раму"
не подскажите как поступить.. сначала думал делать по strpost, но это перебор получится море функций. Наверное многи сталкивались с такой проблемой...
1. Antonim - 06 Апреля, 2009 - 11:12:06 - перейти к сообщению
2. Гость - 06 Апреля, 2009 - 11:56:17 - перейти к сообщению
Регулярка такая получится типа s/(\S*?$t\S*?)/<b>$1</b>/gs;
Сами переведете на PHP
Сами переведете на PHP
3. UA.ProG - 06 Апреля, 2009 - 15:02:07 - перейти к сообщению
JustUserR пишет:
Регулярка такая получится типа s/(\S*?$t\S*?)/<b>$1</b>/gs;
Зачем использовать регулярку когда мы ищем простой текст?
Antonim пишет:
$t[0] = str_ireplace ("$d","<b>$d</b>",$t[0]); где $t[0] - строка в которой заменяем , а $d - то, что ищет пользователь.
У тебя просто скорее всего не правильный вывод результат
4. zeit - 06 Апреля, 2009 - 15:04:26 - перейти к сообщению
$str = preg_replace("/((^|[^а-яa-z]){$word}([^а-яa-z]|$))/i", "<strong>\\1</strong>", $str);
$word - слово для поиска в строке $str
$word - слово для поиска в строке $str
5. Вездеход - 06 Апреля, 2009 - 15:07:52 - перейти к сообщению
бугага )
а я оригинальнее
а я оригинальнее
PHP:
скопировать код в буфер обмена
скопировать код в буфер обмена
- <?PHP
- $STRING ="Мама мыла раму";
- $TEMPLATE ="Мам";
- $RESULT ="";
- $TAG_START ="<b>";
- $TAG_END ="</b>";
- foreach($STRING_SWC as $val) {
- $RESULT.=$val." ";
- }
- else {
- $RESULT.=$TAG_START.$val.$TAG_END;
- }
- }
- }
- ?>
на работоспособность не проверял. =)