$query="SELECT NAME,TEXT FROM `marketing` WHERE `TEXT` LIKE '% ".$wrd." %'";
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
LIME
Отправлено: 03 Июля, 2011 - 17:39:43
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
OrmaJever
$query="SELECT NAME,TEXT FROM `marketing` WHERE `TEXT` LIKE '% ".$wrd." %'";
не работает
на букву "и" выдает слова с этой буквой
хотя предлоги ("как" например ) работают
а можно както вместо пробела поставить отрицание буквы или цифры? (Добавление)
хотя может возникнуть проблема если слово первое в статье
...или последнее (Добавление)
этоже и пробелов касается (( (Добавление)
к томуже вариант пробелов не учитывает знаков препинания (Добавление)
итог: Вокруг слова не должно быть буквы или цифры
как регулярку такую сделать?
OrmaJever
Отправлено: 03 Июля, 2011 - 17:47:30
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
LIME
Отправлено: 03 Июля, 2011 - 17:47:49
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
хотя нет...проблема не в этом видимо
я выделяю слово ф-цией strpos
чтоже делать? как слово выделить? (Добавление) OrmaJeverна до не только статьи выбрать но и слово выделить
...незнаю что делать
vsll
Отправлено: 03 Июля, 2011 - 18:12:34
Частый посетитель
Покинул форум
Сообщений всего: 530
Дата рег-ции: Февр. 2011
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
LIME
Отправлено: 03 Июля, 2011 - 20:59:00
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
OrmaJever вы непоняли
надо в статьях которые выбраны найти искомое слово и выделить
выделение понятное дело ерунда вопрос...но...
как это слово найти...если при помощи strpos то будет выделятся первая попавшаяся комбинация искомых символов даже в середине слов ...
на примере союза "и" будет находится первая буква "и" в любом первом слове с ней
...вроде простая задача а я в тупике
может и для поиска в найденой статье регулярку применить?
посоветуйте оптимальное решение пжлст (Добавление)
желательно найти первую позицию в тексте
остальной код под это заточен
много переписывать придется (Добавление)
все уже написано для поиска через MATCH
но таам не все слова индексируются
вариант перекомпилировать сервер БД не катит (Добавление)
надо выбрать некот орое колво символов до и перед словом чтоб не приводить в результатах поиска всю статью поэтоме нужна позиция слова в тексте (Добавление) Vasiliya вы издеваетесь? )) спасибо конечно за участие но проблема не решается так просто ))
Саныч
Отправлено: 03 Июля, 2011 - 22:06:57
Участник
Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010 Откуда: Украина, Запорожье
Помог: 62 раз(а)
LIME, по-моему вы все слишком перемудрили... Зачем столько ненужных действий?! Выбрали с помощью LIKE нужное (выше вам уже написали как), подсветили слова каким-то цветом (или еще как-то выделили) и вывели на экран... все...
----- Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
LIME
Отправлено: 03 Июля, 2011 - 23:02:30
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
Саныч хорошо...
каким образом найти в статье нужное слово?
вы недооценили задачу...
если через strpos искать короткое слово то найдутся такиеже комбинации символов середине длинного слова... (Добавление)
надо ограничить както слово по краям...логично если через отрицание букв и цифр...
как это сделать я пока не знаю
Саныч
Отправлено: 04 Июля, 2011 - 09:04:55
Участник
Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010 Откуда: Украина, Запорожье
Помог: 62 раз(а)
LIME пишет:
каким образом найти в статье нужное слово?
да очень просто. Предположим $text это у вас текст статьи, $word - слово для поиска...
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
Саныч может словы быть и вообще ничем не ограничено по кокому либо краю
но я вобщем понял
просто в функции preg_replace надо применить регулярку от OrmaJever '%[^а-яёa-z0-9]".$wrd."[^а-яёa-z0-9]%'
тоесть что угодно но не буква или цифра
сработает ? (Добавление) Саныч хотя нет
необходимо не только выделить но и узнать позицию
...впринципе можно после выделения искать тег <strong>
или можно както изящнее ? (Добавление) OrmaJeverСаныч елки моталки не работает регулярка '%[^а-яёa-z0-9]".$wrd."[^а-яёa-z0-9]%'
вообще не находит
Саныч
Отправлено: 04 Июля, 2011 - 13:46:19
Участник
Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010 Откуда: Украина, Запорожье
Помог: 62 раз(а)
LIME пишет:
может словы быть и вообще ничем не ограничено по кокому либо краю
это вы про то, что слово может быть первым или последним в строке? Подправил, проверил, работает...
просто в функции preg_replace надо применить регулярку от OrmaJever '%[^а-яёa-z0-9]".$wrd."[^а-яёa-z0-9]%'
не соглашусь... В тексте могут быть не только русские и латинские буквы, к примеру украинские "Ї" или "і"... По-этому лучше привязываться к символам, они во всех языках одинаковые...
LIME пишет:
узнать позицию
вот тут тоже немного не ясно... Позицию нужно узнать до выделения или уже после? Ведь она изменится... Да и вобще, зачем она вам нужна?
----- Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
LIME
Отправлено: 04 Июля, 2011 - 14:04:54
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
Цитата:
'#(\s|^)('.$word.')(\s|\.|\,|\!|\?\:\;|$)#iU'
вы немогли бы пояснить чуть подробнее регулярку я их незнаю практически
в частности непонятно почему есть разница перед и после $word
и еще скажите можно ее применить в сравнении LIKE? напишите пжлст запрос если не затруднит.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.