|
|
|
| Привет!
Вот сделал подсветку в результатах поиска , то есть:
$row["name"] = ereg_replace($word, "<font color=cc0000><b>$word</b></font>", $row["name"])
классно, подсвечивает все слова $word в результатах поиска, но одна проблема, если в строке поиска слово большим регистром, а в результатах маленьким - не подсвечивает
я пытался делать с подстановкой /i что то типа ereg_replace($word/i, "<font color=cc0000><b>$word</b></font>", $row["name"])
но не работает.
Как сделать функцию ereg_replace не регистрочувствительной ???
буду благодарен за совет! | |
|
|
|
|
|
|
|
для: ANGO
(18.05.2007 в 18:45)
| | Попробуйте preg_replace().
Хотя не понятны некоторые вещи, дайте исходный код посмотреть. | |
|
|
|
|
|
|
|
для: ANGO
(18.05.2007 в 18:45)
| | Есть регистронезависимая ф-я eregi_replace
И как заметил mefestofel, можно использовать preg_replace с модификатором i (а само
выражение взять в ограничители, например, "/".. то есть "/$word/i" с кавычками) | |
|
|
|
|
|
|
|
для: ANGO
(18.05.2007 в 18:45)
| | Покажите что Вы помещаете в переменную $word, а лучше дайте исходный код посмотреть. | |
|
|
|
|
|
|
|
для: mefestofel
(18.05.2007 в 19:13)
| | а в переменной любое слово может быть
я вот так сделал
$row["name"] = preg_replace("/$word/i", "<font color=cc0000><b>$word</b></font>", $row["name"])
|
это работает, подсвечивает все, НО, теперь если вводишь запрос СЛОВО большим регистром, оно заменяет все СЛОВО тексте большим регистром и подсвечивае ))))
вот я пытаюсь добиться, чтобы оно подсвечивало слова, не меняя регистр, в независимости от регистра СЛОВА для поиска | |
|
|
|
|
|
|
|
для: ANGO
(18.05.2007 в 19:28)
| | mixed preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit] )
pattern - регулярное выражение
subject - строка в которой надо искать
replacement - на что заменяем.
Что Вы помещаете в переменную $word? Второй раз спрашиваю. | |
|
|
|
|
|
|
|
для: mefestofel
(18.05.2007 в 19:37)
| | я же говорю, в переменной $word любое слово для поиска по базе которое введет пользователь, разумеется прошедшее проверку на недопустимые символы | |
|
|
|
|
|
|
|
для: ANGO
(18.05.2007 в 19:47)
| | а что означает mixed ??? | |
|
|
|
|
|
|
|
для: ANGO
(18.05.2007 в 19:48)
| | Слово $word надо бы обработать ф-ей preg_quote..
А чтоб не трогать регистр, можно вот так поступить:
$row["name"] = preg_replace("/($word)/i", "<font color=cc0000><b>\\1</b></font>", $row["name"])
|
| |
|
|
|
|
|
|
|
для: kasmanaft
(18.05.2007 в 20:09)
| |
$row["name"] = preg_replace("/($word)/i", "<font color=cc0000><b>\\1</b></font>", $row["name"])
|
это не пашет, глотает слово для поиска | |
|
|
|
|
|
|
|
для: ANGO
(18.05.2007 в 21:36)
| | Чего делает?
<?php
$text = 'text bla bla text bla';
$word = preg_quote('BLA');
echo preg_replace("/($word)/i", "<font color=cc0000><b>\\1</b></font>", $text), "<br>";
echo preg_replace("/$word/i", "<font color=cc0000><b>$word</b></font>", $text);
?>
|
| |
|
|
|