мне надоело подбирать мусор за спаммерами которые оставляют сообщения ввиде "ззззззззззз", "рлдпд25ро245р3л2", "123" и тому подобное.
помогите пожалуйста написать функцию (максимально легкую ибо системой комментов пользуются очень много юзеров) которая принимает текст, проверяет если в сообщении присутствуют только цифры, например "16297834612", и если есть
более 3 одинаковых символов подряд чтоб удалять комменты подобные этому "ыыыыыыыыыы".
делать split не хочу ибо такая проверка сильно нагружает.
в регулярках не силен.
кто подскажет?
Спустя 4 минуты, 33 секунды (17.04.2011 - 14:33) inpost написал(а):
"в регулярках не силен." - повод изучить =)
Но я бы просто капчу поставил бы.
Но я бы просто капчу поставил бы.
Спустя 6 минут, 55 секунд (17.04.2011 - 14:40) MatrixGod написал(а):
inpost
каптча плохо. это не подходит под то что мне надо.
ненадо даже функцию писать.
как написать регулярку которая проверяет есть ли в тексте 3 или более одинаковых символов подряд?
каптча плохо. это не подходит под то что мне надо.
ненадо даже функцию писать.
как написать регулярку которая проверяет есть ли в тексте 3 или более одинаковых символов подряд?
Спустя 56 минут, 51 секунда (17.04.2011 - 15:37) walerus написал(а):
http://docs.com.ru/php_1_8.php
Регулярка то есть, например:
р+ означает один или несколько символов р, стоящих подряд;
р* означает ноль и более символов р, стоящих подряд;
р? означает ноль или один символ р;
р{2} означает два символа р, стоящих подряд;
р{2,3} означает от двух до трех символов р, стоящих подряд;
р{2,} означает два и более символов р, стоящих подряд. - твой вариант...,
if (preg_match('~р{2,}~', $string)){
echo "Слово с двумя и больше буквами P найдено";
}
else{
echo "Слово с двумя и больше буквами P не найдено";
}
Как то так...
Но тебе нужно будет перебрать весь алфавит, чтоб проверить каждый символ..., другие идеи пока не приходит на ум.. мб, кто то подскажет что лучше...
Регулярка то есть, например:
р+ означает один или несколько символов р, стоящих подряд;
р* означает ноль и более символов р, стоящих подряд;
р? означает ноль или один символ р;
р{2} означает два символа р, стоящих подряд;
р{2,3} означает от двух до трех символов р, стоящих подряд;
р{2,} означает два и более символов р, стоящих подряд. - твой вариант...,
if (preg_match('~р{2,}~', $string)){
echo "Слово с двумя и больше буквами P найдено";
}
else{
echo "Слово с двумя и больше буквами P не найдено";
}
Как то так...
Но тебе нужно будет перебрать весь алфавит, чтоб проверить каждый символ..., другие идеи пока не приходит на ум.. мб, кто то подскажет что лучше...
Спустя 1 час, 32 минуты, 57 секунд (17.04.2011 - 17:10) Invis1ble написал(а):
MatrixGod
Цитата |
есть ли в тексте 3 или более одинаковых символов подряд |
preg_match('#\pN{3,}#su', $text);
Однако, имхо, это плохая затея.
Спустя 22 минуты (17.04.2011 - 17:32) inpost написал(а):
MatrixGod
Мой коммент затрётся:
"Вааау, какой классный у Вас сайт, я Вас просто ОБОЖЖЖАЮ!".
Или цитата из открытки:
"Поздравляю с Днём Рожжждения, Жжжелаю счастья и любви!" - и рядом была пчелка.
Мой коммент затрётся:
"Вааау, какой классный у Вас сайт, я Вас просто ОБОЖЖЖАЮ!".
Или цитата из открытки:
"Поздравляю с Днём Рожжждения, Жжжелаю счастья и любви!" - и рядом была пчелка.
Спустя 10 минут, 19 секунд (17.04.2011 - 17:42) MatrixGod написал(а):
inpost
ок, согласен. можно вместо трех букв сделать скажем 5. это будет точней.
ну а если уже кто нить напишет "Вааааау, какой классный у Вас сайт, я Вас просто ОБОЖЖЖЖЖЖЖАЮ!" - я готов нести такую потерю. зато это сократит мою работу на 10-15 минут в день.
ок, согласен. можно вместо трех букв сделать скажем 5. это будет точней.
ну а если уже кто нить напишет "Вааааау, какой классный у Вас сайт, я Вас просто ОБОЖЖЖЖЖЖЖАЮ!" - я готов нести такую потерю. зато это сократит мою работу на 10-15 минут в день.