SamForum.org  
SamLab.ws
Заблокированные пользователи

Вернуться   SamForum.org > Программирование > Web-программирование
Важная информация

Ответ
 
Опции темы Опции просмотра
Старый Добавлено: 06.05.2007, 21:54
  (#1)
White Charmer
Заслуженный
Заслуженный пользователь
 
Аватар для White Charmer

По умолчанию

Товарищи ПХП-программеры, не могли бы вы мне помочь со следующей проблемой:
Движок моего сайта хранит инфу в текстовых файлах, и с некоторых пор потребовалось написать поиск по этим-самым файлам. С алгоритмом поиска я разобрался - без проблем определяю позицию запрошенной строки в тексте, но далее возник ступор - надо вывести пользователю фрагмент текста, содержащий введенную строку. Пробовал выводить по 20 символов от найденной строки и 20 после - в начале и в конце получал обрубки слов. Единственное решение, которое приходит в голову, дак это проходить по всему тексту и разбивать его на слова по пробельному знаку, но веть это долго и создает кучу лишних переменных. Прямо незнаю, как мне быть Надеюсь на вашу помощь.
White Charmer вне форума Отправить личное сообщение для White Charmer
Вверх
Ответить с цитированием
Старый Добавлено: 07.05.2007, 09:31
  (#2)
Sam Dark
Добрый кот
Администратор
 
Аватар для Sam Dark

По умолчанию

Пробежать влево и вправо двумя циклами так, чтобы встретилось N границ слов.
Sam Dark вне форума Отправить личное сообщение для Sam Dark
Вверх
Ответить с цитированием
Старый Добавлено: 31.05.2007, 21:20
  (#3)
Loop69
Наблюдающий
Пользователь
 
Аватар для Loop69

По умолчанию

А если есть возможность, - перевести тесктовые файлы в таблицы MySQL, и проблема отпадет. Скрипт перевода могу выложить, если нуна.

А вот еще совет от г-на Idlera с форума spravkaweb. Попробовать регклярные выражение. Что-нить типа этого:

Цитата:
/**
* Принимая в параметрах строку отдает два предложения из нее
*
* @param string $str
* @return string
*/
function ones($str){
$reg='#^([^.!?]*?[.!?]){1}#is';
preg_match($reg,$str,$pat);
return $pat[0];
}


Последний раз редактировалось Loop69; 01.06.2007 в 04:33.. Причина: Дополнение
Loop69 вне форума Отправить личное сообщение для Loop69
Вверх
Ответить с цитированием
Старый Добавлено: 22.07.2007, 14:21
  (#4)
nopase
Гость
 
Аватар для nopase

По умолчанию

Регвыр, приведенный лупом, по-моему, не будет работать: зачем то там условие, чтоб вхождение начиналось с начала строки. К тому же, оно вроде как просто выделяет одно предложение из строки. Но идея правильная. от найденного вхождение топай влево и вправо до точки, воскл или вопроса.
Так выделишь осмысленное предложение, содержащее искомую строку
Вверх
Ответить с цитированием
Этот пользователь сказал cпасибо за это полезное сообщение:
White Charmer (22.07.2007)
Старый Добавлено: 12.10.2007, 11:28
  (#5)
alextg
Наблюдающий
Пользователь
 
Аватар для alextg

По умолчанию

по любому mySQL - намного лучше во всех отношениях - и скорость, и удобство работы

Последний раз редактировалось alextg; 12.10.2007 в 11:32..
alextg вне форума Отправить личное сообщение для alextg
Вверх
Ответить с цитированием
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход



Powered by vBulletin® Version 3.8.10
Copyright ©2000 - 2020, vBulletin Solutions, Inc. Перевод: zCarot

Время генерации страницы 0.06371 секунды с 15 запросами