Привет всем! Нужна помощь! мне нужно чтобы ... это для поиска, мне нужно точбы оно выводило не весь найденый текст (он может быть большым) а только например 100 символов перед тем словом что я ищу и 200 после, притом разделяло по пробелам, чтобы слова не обрезало, и не искало в html коде (типо <a href='www.test' оно найдёт тогда слово test и выведет ссылку, но мне этого не надо...)... переменная $text = "результат, тоетсь может быть большой текст"; переменная где задаётся искуемое слово это $_GET('show') жду ответа...
вариант 1. вырезаешь все тэги, находишь слово, вырезаешь кусок в +-150 символов, обрезаешь до пробелов с обоих сторон. вариант 2. прикручиваешь гугол
Код (Text): <?php $rest = substr("abcdef", 0, -1); // возвращает "abcde" $rest = substr("abcdef", 2, -1); // возвращает "cde" $rest = substr("abcdef", 4, -4); // возвращает "" $rest = substr("abcdef", -3, -1); // возвращает "de" ?> спс, но как сделать так чтобы оно по пробелам разделяло, и в html коде не искало?
Это всё хооршо, но как убрать поиск в html коде? sql запрос выглядит так: [sql]SELECT * FROM table WHERE name LIKE %test%;[/sql]
1. Обрезаем тэги: PHP: $cursor = 0; $startpos = strpos($text,"<"); while ($startpos!==false) { $endpos = strpos($text,">",$startpos); if ($endpos===false) $startpos=false; else { $text = str_replace(substr($text,$startpos,$endpos-$startpos+1),"",$text); $cursor=$startpos; $startpos = strpos($text,"<",$cursor); } } Код приблизительный, но вроде должен работать. Можно вместо угловых скобок искать один из определенных тэгов (создаем Array с тэгами), если не хотим обрезать все тэги или твердо уверены в структуре текста. 2. Далее ищем позицию искомого слова в тексте с помощью strpos, вычисляем координаты начала и конца текста. Кусок текста получим с помощью функции substr(). 3. Ищем от начала и от конца пробел функцией strpos, обрезаем нужное количество букаф с помощью substr().
создай отдельную таблицу с поисковым индексом и заноси туда текст без тэгов, знаков препинания и коротких слов, повесь полнотекстовой индекс и юзай match-against
так, мне нужна (если есть такое, если нету - то как сделать) функция, которая будет обрезать слова (по пробелам) от определёного слова (переменная $show), тоесть: PHP: $text = "много много много слово 000 слова много много много"; $show = "000"; # обрезать нужно всё что после 2-х слов после 000 спереди и сзади, чтобы получилось "...много слово 000 слова много..." $text1 = nl2br(stripslashes(strip_tags($text))); + вопрос ещё один, как сделать чтобы в mysql запросе оно искало не точную фразу, а по словам, типо "читы+crysis"... хотя это уже не так важно
ну блин! помогите! невыходит! из-за этой лажы я немогу завершить создания скрипта поиска..... Код (Text): $text1 = nl2br(stripslashes(strip_tags($text))); $mystring = $text1; $findme = $_GET['show']; $pos = strpos($mystring, $findme); if ($pos === true) { $text1 = substr($text1, 2, $pos); } нифига не могу понять как убирать по пробелам, да и чёо даже не выходит сделать от определённого слова убирать по символам хотябы...
прочитал ВНИМАТЕЛЬНО, и скажи мне, где в substr задавать с какого символа начинать удалять в -20 символов и в +20 символов, там нельзя так.