Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.57/14: Рейтинг темы: голосов - 14, средняя оценка - 4.57
sl_play
2 / 2 / 3
Регистрация: 25.05.2009
Сообщений: 2,576
1

Помогите найти готовый шаблон.

10.09.2010, 00:00. Просмотров 2626. Ответов 28
Метки нет (Все метки)

Народ, помогите написать шаблон или найти готовый!
Я, так понимаю, поиск, допустим в винде, когда вы ищете файлы или в интернете при поиске на том же рамблере, но с инет-поиском дело другое, там есть функции работающзие со специальными столбцами в бд.
А мне нужно, допустим делается поиск в неком количестве строк, по запросу 'документе другой', одна из строк содержит текст
'в текущем документе есть другой символ' - должно вернуть true при поиске (найдено соответствие)
Или же если встретится строка целиком, тоже должно вернуться true.
Объяснил как смог, боюсь, что подробнее не получится
Все, кто понял меня - помогите!
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.09.2010, 00:00
Ответы с готовыми решениями:

PHPExcel использовать готовый шаблон
Добрый день. Кто-нибудь знает или сталкивался... Можно ли в PHPExcel использовать xml файлик с...

Нужен готовый php-сайт(шаблон), для доски объявлений
Я помню, что где-то было много таких, но никак не могу найти в инете. Может есть у кого-то ссылки...

Готовый шаблон
Здравствуйте! Сижу ковыряюсь в джумле с шаблоном... Шаблон готовый,...

Помогите найти шаблон счёт-фактуры
помогите найти шаблор счёт-фактуры на платформе MS Excel

Готовый шаблон перелистывающейся книги
Друзья скажите пожалуйста, я видел несколько приложений которые использовали готовые шаблоны...

28
Dirty
0 / 0 / 1
Регистрация: 21.06.2010
Сообщений: 201
10.09.2010, 00:30 2
Так где надо? )
В БД -- WHERE txt LIKE '%документе%' AND txt LIKE '%другой%'
просто так -- (/документе/ && /другой/); если порядок важен, то еще проще -- /документе.+другой/
А с падежами работать.. лучше не связываться )
0
sl_play
2 / 2 / 3
Регистрация: 25.05.2009
Сообщений: 2,576
10.09.2010, 10:58  [ТС] 3
ты не понял!
допустим есть массив строк, в которых нужно сделать поиск(проанализировать каждую запись), по шаблону(RegXp), когда:
Если есть совпадение всего предложения, вернёт - соответствие найдено, если есть есть совпадения хотя бы одного слова из сделаного запроса.
По поводу всего остального, того, что ты там написал про поиск в бд. Советую тебе почитать здесь
http://www.mysql.ru/docs/man/Fulltext_Search.html
и посмотреть как правильно делается поиск по тексту содержащемуся в бд.
Там рассматревается релевантность слов, но мне такой пример не нужен. Пусть шаблон делает хотя бы то, что я написал!
0
webbyte
7 / 8 / 6
Регистрация: 11.05.2008
Сообщений: 876
10.09.2010, 13:59 4
ЭсЭль, денюшку готовишь? Мы запросто поможем :Р
0
10.09.2010, 13:59
Dirty
0 / 0 / 1
Регистрация: 21.06.2010
Сообщений: 201
10.09.2010, 15:07 5
С релевантностью, учетом дистанции, веса и т.д. -- это далеко не тривиальная задача
Если нужно даже одно из слов -- регексп упрощается --
/(документе|другой)/
0
sl_play
2 / 2 / 3
Регистрация: 25.05.2009
Сообщений: 2,576
10.09.2010, 19:45  [ТС] 6
если нужно - и денежку приготовлю, чисто как для тебя ))
А вообще, я так и не увидил шаблона или хотя бы какких-то попыток его написать. Очень жаль!

P.S. если появятся мысли по-этому поводу - высказывайте!
0
sl_play
2 / 2 / 3
Регистрация: 25.05.2009
Сообщений: 2,576
10.09.2010, 19:58  [ТС] 7
когда в винде делаете поиск по слову... вот именно шаблон для такого поиска, нужен мне!
0
Dirty
0 / 0 / 1
Регистрация: 21.06.2010
Сообщений: 201
10.09.2010, 23:24 8
Определись с тем, что нужно. Винда (без индексации), если я не ошибаюсь, ищет по совпадению подстроки, даже без учета границы слова, для каждого из введенных слов
0
sl_play
2 / 2 / 3
Регистрация: 25.05.2009
Сообщений: 2,576
11.09.2010, 11:33  [ТС] 9
я же написал, что мне нужно.
Если есть совпадение всей строки, если есть совпадение в отдельности каждого слова. Про релевантость, вес - я уже не говорю, хватит только совпадения.
0
webbyte
7 / 8 / 6
Регистрация: 11.05.2008
Сообщений: 876
11.09.2010, 13:25 10
ЭсЭль, тебе жа написали шаблон.
a - исходый массив строк для поиска
б - массив искомых слов
[код]
пока (счетчик меньше длины б) {
паттерн .= б[счетчик].'|';
счетчик++;
}
счетчик = 0;
пока (счетчик меньше длины а){
если (длина(пересечение_массивов(a[счетчик],б))===1) принт ('полное совпадение');
если прег_мач('`'.подстрока(паттерн,0, длина(паттерн)-1).'`si', а[счетчик]) принт ('совпадение отдельного слова');
счетчик++;
}
[/код]
0
sl_play
2 / 2 / 3
Регистрация: 25.05.2009
Сообщений: 2,576
11.09.2010, 14:22  [ТС] 11
Оставь себе свой шаблон и всё, что ты там выше написал!
Разбивать предложение запроса по слова и листать их циклом - это крайне необдумано, этот вариант я откинул сразу же!
Всё, что делает цикл - должен сделать один шаблон, шаблон сам должен посмотреть где есть пробелы взять всё, что стоит перед пробелами и т.д. Но это лиш моё понимание шаблона, если кто-то считает и может обосновать, что шаблон не должен искать пробелы, а действовать по другому принципу - высказывайте!
0
Dirty
0 / 0 / 1
Регистрация: 21.06.2010
Сообщений: 201
11.09.2010, 14:25 12
sl_play, одним регекспом это сделать можно, конечно -- но он будет слишком сложным. я бы запутался уже при трех словах в фразе да и медленным достаточно будет..
Код
ЕСЛИ текст содержит строку ТО совпадение фразы
ИНАЧЕ 
  разбиваем строку на слова
  ДЛЯ каждого слова
    ЕСЛИ не содержится
    ТО обломом
    ИНАЧЕ продолжаем
  ЕСЛИ НЕ облом ТО совпадение всех слов
PS: запости потом решение, интересно, что же имелось в виду )
0
sl_play
2 / 2 / 3
Регистрация: 25.05.2009
Сообщений: 2,576
11.09.2010, 14:32  [ТС] 13
цикл будет делать это всё на много медленнее, чем шаблон, это я тебе точно говорю!
Есть лецензированные шаблоны для разных нужд. Один из таких шаблонов предназначается для поиска в тексте(всё это давно продуманно программистами и созданы определённые решения), но я не знаю где их найти!
0
Dirty
0 / 0 / 1
Регистрация: 21.06.2010
Сообщений: 201
11.09.2010, 15:15 14
Гхм, посмотри любую реализацию регекспов, сам увидишь, что не все так просто. Учитывая то, что в твоем случае будет много возвратов -- регексп будет считать медленнее гораздо. Вариант для двух слов -- /(($a.*$b)|($b.*$a))/). Другой вариант -- пробежать по результатам /(($a|$b).*)+/ и убедиться, что все слова в них входят.
Лицензионный шаблон -- бред. Есть готовые движки, которые используют обычные шаблоны и некоторый набор функций. Есть различные реализации регекспов (в одной из них твоя задача решается как /(?=$a)(?=$b)/).
0
sl_play
2 / 2 / 3
Регистрация: 25.05.2009
Сообщений: 2,576
11.09.2010, 15:30  [ТС] 15
да как же ты не можешь понять, что всё это уже написано, например - проерка mail на валидность - http://php.spb.ru/other/mail.txt
такие же шаблоны есть для стандартного(сертифицированного) поиска в тексте.
0
sl_play
2 / 2 / 3
Регистрация: 25.05.2009
Сообщений: 2,576
11.09.2010, 15:31  [ТС] 16
как малый ребёнок прямо...
0
Dirty
0 / 0 / 1
Регистрация: 21.06.2010
Сообщений: 201
11.09.2010, 18:55 17
Бред.. не заглядывал в рфц, но код для проверки емейла на валидность будет примерно таким: /^w+(?:.w+)*@w+(?:.w+)+$/
0
sl_play
2 / 2 / 3
Регистрация: 25.05.2009
Сообщений: 2,576
11.09.2010, 23:48  [ТС] 18
слушай, ну ты тормоз, ужас!
это сертифицированный шаблон, читай о нём здесь
http://php.spb.ru/php/regexp.html
там где проверка правильности мэил.
Ещё раз повторю, для особо одарённых
http://php.spb.ru/other/mail.txt - сертифицированный шаблон для проверки e-mail

P.S. Ужасно не люблю таких программистов, которые не знают + не веруют!
0
webbyte
7 / 8 / 6
Регистрация: 11.05.2008
Сообщений: 876
12.09.2010, 14:13 19
ЭсЭль,
регекспы - не панацея.
что-то можно реализовать на них, что-то можно и нужно без них.

>> цикл будет делать это всё на много медленнее, чем шаблон

Слушай.
Как по-твоему работает любая встроенная функция пхп??
Не задумывался?
Попробуй написать хотя бы класс String, может поумнеешь.
Вот, например, возможная реализация функции strlen();
Код
int strlen(string str){
  int i;
  while(ord(str[i])!=0) i++;
  return i;  
}
Практически ВСЕ функции имеют в своей реализации циклы. На С++, на АСМе - неважно. Имеют.
Поэтому утверждение, что цикл работает МЕДЛЕННЕЕ регекспа, достойно лишь трехлетнего ребенка, который ничего не смыслит в системном программировании. preg_match_all() содержит ЦИКЛЫ, но работает в общем случае. В твоем же можно грамотно написать два вложенных цикла и они будут БЫСТРЕЕ искать совпадения, чем применяя регекспы. Потому как ЛЮБОЙ регексп сначала РАЗБИРАЕТСЯ на составляющие ЦИКЛОМ, и лишь потом что-то ищется.

Далее, ты не такой ас, чтобы вызывающе себя вести с теми, кто тебе предлагает хоть какую-то помощь.
Пока ты - никто. Ты не работал ни с Сегаловичем, ни с Зуевым, ни с Клименко. За твоими плечами всего пару лет 'веб-программирования', а гонору на все 50. Изволь вести себя уважительно. Dirty не уступает тебе в классе, поэтому изволь разговаривать как минимум на равных.
0
Dirty
0 / 0 / 1
Регистрация: 21.06.2010
Сообщений: 201
12.09.2010, 14:44 20
Вопрос -- кто его сертифицировал? php.spb.ru? С чего? данный регексп пропускает, например, 'aaa@bb.cc (с ОДНОЙ кавычкой), который НЕ является валидным емейлом; он допускает обратный слэш, который явно исключен; дальше смотреть просто лень.

/ушел из этого топика, бессмыслено.
0
12.09.2010, 14:44
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.09.2010, 14:44

Продам готовый шаблон. Возможна доработка
Готовый шаблон возможна доработка. цена договорная

Экспорт из ListBox в готовый шаблон Word
Добрый день, нужна помощь в реализации одной функции, в общем в ListBox у меня хранится подробная...

Быстрая выгрузка в готовый шаблон Excel
Добрый день! Необходимо было создать внешнюю оболочку для пользователя, которая запускала бы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.