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

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

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

Strict Standards: Resource ID#26 used as offset, casting to integer (26) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Поиск в тексте и explode
ТвойWeb ТвойWeb
Качественный Европейский хостинг
Форум для чайников
 Чат на форуме      Помощь      Поиск      Пользователи


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

> Без описания
WScout
Отправлено: 24 Декабря, 2009 - 03:40:27
Post Id


Newbie


Покинул форум
Сообщений всего: 10
Дата рег-ции: Окт. 2009  

Карма 0




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


Full Member


Покинул форум
Сообщений всего: 152
Дата рег-ции: Нояб. 2006  

Карма -2




CODE:


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

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


 
 Top
WScout
Отправлено: 25 Декабря, 2009 - 02:42:20
Post Id


Newbie


Покинул форум
Сообщений всего: 10
Дата рег-ции: Окт. 2009  

Карма 0




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


Full Member


Покинул форум
Сообщений всего: 152
Дата рег-ции: Нояб. 2006  

Карма -2




CODE:

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

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

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

что первое в голову пришло
 
 Top
WScout
Отправлено: 02 Января, 2010 - 11:39:29
Post Id


Newbie


Покинул форум
Сообщений всего: 10
Дата рег-ции: Окт. 2009  

Карма 0




Спасибо за решение проблемы. Все четко и точно работает. Недавно начал использовать php, все эти функции знаю, но пока не сильно развито у меня программное чутье, поэтому и не сообразил их сразу применить, на сам деле все просто. Только вот столкнулся с другой - функция stripos работает в php5, на локалке у меня все пашет, а вот заливаю на сервак, а там облом. Пришлось немного порыться в интернете, чтобы найти одну функцию, которая слегка упрощает принцип работы и решает проблему с php5 - stristr, которая режет сроку от заданного слова до конца и без учета регистра. Все отлично работает, как и с предыдущим примером. Еще раз спасибо за идею и вообще поддержку.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0, скрытых: 0)
« PHP/Perl »


Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только администраторы и модераторы могут отвечать на сообщения в этом разделе.
 



Форум на AlfaSpace.NET


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

[Script Execution time: 0.0441]     [ Gzipped ]



Notice: ob_end_flush(): failed to send buffer of ob_gzhandler (1) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/page_tail.php on line 33