Здравствуйте! Подготавливаю поисковый запрос для выборки данных из базы данных оператором LIKE
Суть чистки в обрезании окончаний, уничтожению стоп-слов, спец. символов и прочего. Функции-самописки имеют вид:
<?php/*Функция обрезки окончаний слов*/function dropBackWords($word) { //тут мы обрабатываем одно слово$reg = "/(а|я|о|е|ь|и|ы|ая|яя|ое|ее|ый|ать|ять|еть|уть|у|ю|ем|ешь|ете|ет|ут|ют|ал|ял|ала|яла|али|яли|ул|ула|ули)$/i"; //данная регулярная функция будет искать совпадения окончаний$word = preg_replace($reg,'',$word); //убиваем окончанияreturn $word;}/*Функция уничтожения стоп-слов*/function stopWords($query) { //тут мы обрабатываем весь поисковый запрос$reg = "/\s(а|без|более|бы|был|была|были|было|быть|в|вам|вас|весь|во|вот|все|всего|всех|вы|где|да|даже|для|до|его|ее|если|есть|еще|же|за|здесь|и|из|или|им|их|к|как|ко|когда|кто|ли|либо|мне|может|мы|на|надо|наш|не|него|нее|нет|ни|них|но|ну|о|об|однако|он|она|они|оно|от|очень|по|под|при|с|со|так|также|такой|там|те|тем|то|того|тоже|той|только|том|ты|у|уже|хотя|чего|чей|чем|что|чтобы|чье|чья|эта|эти|это|я)\s/gim"; //данная регулярка отрежет все стоп-слова отбитые пробелами$query = preg_replace($reg,'',$query); //убиваем стоп-словаreturn $query;}/*Функция подготовки поискового запроса*/function clearQuery($query) {$query = stripcslashes($query); //удаляем экранирующие бэкслэши$query = htmlspecialchars($query); //преобразуем специальные символы в HTML-сущности$query = stopWords($query); //используем написанную нами ранее функцию для удаления стоп-слов$words = explode(" ",$query); //разбиваем поисковый запрос на слова через пробел и заносим все слова в массив$i = 0; //устанавливаем начало массива в 0, помним что нумерация в массивах начинается с 0$keywords = ""; //создаем пустой массивforeach ($words as $word) { //в цикле для массива words создаем элемент word$word = trim($word);if (empty($word) or strlen($word)<6) { //если слово короче 6 символов или пустое то выводимecho "<div class='search_title_attention'>Поисковый запрос не введён, либо он менее 3-х символов!</div>";}else { //иначе выполняем следующееif (strlen($word)>8) {$keywords[$i]=dropBackWords($word); //наша функция чистки окончаний для слов длинее 8 символов и занесение их в созданный нами массив$i++; //наращиваем значение i для того чтобы перейти к следующему элементу}else {$keywords[$i]=$word; //если короче 8 символов то просто добавляем в массив$i++;}}}return $keywords; //возвращаем полученный массив}?>
Выходит ошибка: Warning: preg_replace() [function.preg-replace]: Unknown modifier 'g' in /home/virtwww/w_torawhite-ru_404794df/http/blocks/functions.php on line 15
You can post now and register later.
If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.
Здравствуйте, подскажите какой тег использовать для увеличения значения, пример на картинке.
Вроде, про такой тег я слышала. Если есть тег прогресс бар, значит и такое должно быть.
Question
Torawhite
Здравствуйте! Подготавливаю поисковый запрос для выборки данных из базы данных оператором LIKE
Суть чистки в обрезании окончаний, уничтожению стоп-слов, спец. символов и прочего. Функции-самописки имеют вид:
Выходит ошибка: Warning: preg_replace() [function.preg-replace]: Unknown modifier 'g' in /home/virtwww/w_torawhite-ru_404794df/http/blocks/functions.php on line 15
15-я строка - $query = preg_replace($reg,'',$query); //убиваем стоп-слова
Не могу понять в чём ошибка. Помогите, пожалуйста, разобраться с ошибкой.
Link to comment
Share on other sites
4 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.