Strict Standards: Resource ID#28 used as offset, casting to integer (28) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#30 used as offset, casting to integer (30) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#31 used as offset, casting to integer (31) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Версия для печати :: Поиск в тексте и explode
ТвойWeb » WebMaster класс » PHP/Perl » Поиск в тексте и explode

Страниц (1): [1]
 

1. WScout - 24 Декабря, 2009 - 03:40:27 - перейти к сообщению
Здравствуйте. Столкнулся с проблемой при организации поиска. Существует некий запрос пользователя - $inq_find. По этому запросу найдена запись в базе - $description. Теперь в результатах поиска мне нужно взять весь текст $description, выбрать из него запрашиваемое слово, выделить его и вывести еще слов пятнадцать после запрашиваемого. Делаю это через exlode($inq_find, $description);. В результате получаем минимум два массива. Первый - до ключевого слова, второй после. Это удобно для вывода. Но есть нюансик, explode() не видит слово, если не совпадает регистр. Что сделать? Может вообще использовать ддругой алгоритм, только какой?
2. Davinchi - 24 Декабря, 2009 - 05:43:26 - перейти к сообщению
CODE:


str_ireplace()-Регистро-независимый вариант функции str_replace().
str_replace()-Заменяет строку поиска на строку замены

Функция str_replace ($str1, $str2, $source) заменяет в строке $source (которая в процессе работы функции не изменяется) все вхождения подстроки $str1 на подстроку $str2 и возвращает результат в виде новой строки.


3. WScout - 25 Декабря, 2009 - 02:42:20 - перейти к сообщению
Да, но это функции только выделения слова в тексте. Их можно использовать например в случае, если слово содержится в названии. Я так и делаю. Но сейчас дело не в том. Допустим есть какой-то кусок текста, большой кусок, и в нем содержится наше слово. Ну не буду же я выводить в результатах поиска весь кусок с выделенным словом. Мне нужно еще вывести какое-то кол-во слов после запрашиваемого, а остальное все отсечь.
4. Davinchi - 25 Декабря, 2009 - 05:13:04 - перейти к сообщению
CODE:

stripos-Возвращает позицию первого вхождения подстроки без учета регистра

CODE:
дальше смотрим длинну строки поиска strlen()

CODE:
выводим строку поиска жирным, а дальше выводим еще n символов после строки поиска substr()

что первое в голову пришло
5. WScout - 02 Января, 2010 - 11:39:29 - перейти к сообщению
Спасибо за решение проблемы. Все четко и точно работает. Недавно начал использовать php, все эти функции знаю, но пока не сильно развито у меня программное чутье, поэтому и не сообразил их сразу применить, на сам деле все просто. Только вот столкнулся с другой - функция stripos работает в php5, на локалке у меня все пашет, а вот заливаю на сервак, а там облом. Пришлось немного порыться в интернете, чтобы найти одну функцию, которая слегка упрощает принцип работы и решает проблему с php5 - stristr, которая режет сроку от заданного слова до конца и без учета регистра. Все отлично работает, как и с предыдущим примером. Еще раз спасибо за идею и вообще поддержку.

Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0254]     [ Gzipped ]