- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Нужна функции, а лучше класс который подготавливает данные для индексного поля в БД.
У меня есть N кол-во полей. Их нужно склеить в одну строку. Конечная строка не должна содержать:
1) знаков препинания
2) слов короче 3-х символов
3) знака переноса строки
4) повторяющихся слов
5) лишних пробелов (подряд два и более пробела)
Все это чудо должно работать с кирилицей.
В общем, кто-что знает...выкладывайте.
Может быть кто-то писал сам и оно работает уже временем.
Я сейчас сижу пишу ... но чувствую что потом еще исправлять и исправлять... а на это времени нет=(
Вот то, что уже есть.
Не получается написать регулярку для удаления слов строго меньше 4-х символов.
Этот вариант работает только если удаляемое слово будет окружено пробелами. Пробовал так сделать
не работает=(
так же меня смущает мой способ удаления знаков препинания
Есть ли какой-то еще способ, кроме как перечислить все?
$str = 'www ffff fqqq site.com \'" yyy ytrrr vvvvv mmmmmm';
$str = preg_replace( '/\W/', ' ', $str );
$str = preg_replace( '/(^|\s)[^\s]{1,4}(\s|$)/', ' ', $str );
$str = preg_replace( '/\s+/', ' ', $str );
$str = trim($str);
$str = 'www ffff fqqq site.com \'" yyy ytrrr vvvvv mmmmmm';
$str = preg_replace( '/\W/', ' ', $str );
$str = preg_replace( '/(^|\s)[^\s]{1,4}(\s|$)/', ' ', $str );
$str = preg_replace( '/\s+/', ' ', $str );
$str = trim($str);
вот это выражение
Что-то не то с кирилицей делает.....
это текст на котором я тестирую.
Вот код.
В результате я получаю
Методом тыка было установлено, что в черных фигнях виновата строка
и слова меньше 3-х символов не удаляются... или не все...
В частности меня бесит буква "г" в этом участке текста
я по ней ориентируюсь работает скрипт или нет...
http://www.google.ru/search?hl=ru&newwindow=1&client=opera&rls=ru&q=preg_replace+%D0%B8+utf-8&oq=preg_replace+%D0%B8+utf-8
$str = 'вввв уууу ывыввв site.com \'" ыыы куккккк аа ппппппп';
$str = preg_replace( '/[^а-яa-z]/ui', ' ', $str );
$str = preg_replace( '/(^|\s)[^\s]{1,3}(\s|$)/u', ' ', $str );
$str = preg_replace( '/\s+/', ' ', $str );
$str = trim($str);
echo $str;
http://www.google.ru/search?hl=ru&newwindow=1&client=opera&rls=ru&q=preg_replace+%D0%B8+utf-8&oq=preg_replace+%D0%B8+utf-8
$str = 'вввв уууу ывыввв site.com \'" ыыы куккккк аа ппппппп';
$str = preg_replace( '/[^а-яa-z]/ui', ' ', $str );
$str = preg_replace( '/(^|\s)[^\s]{1,3}(\s|$)/u', ' ', $str );
$str = preg_replace( '/\s+/', ' ', $str );
$str = trim($str);
echo $str;
хм... про глюк с UTF-8 не знал, спасибо.
И за решение тоже спасибо=)
Вот готовое решение. Может кому-то пригодится.