#1 2008.10.18 01:48

datua
Участник
Откуда: g
Зарегистрирован: 2008.04.15
Сообщений: 54
Карма: 1
Профиль

антиспам

realno li delat takoi antispam? chto chelovek ne smog napisat takie "##########" ili ",,,,,,,,,," ili "aaaaaaaaaa". xochu chto v mesto "aaaaaaaaaa" ostalos 3 bukva "aaa", ili vmesto "........." ostalos "..."

Неактивен

#2 2008.10.18 18:30

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: антиспам

ммм... задачка...

Код:

1
span style="color: #0000BB"><?php// строка, которую надо отфильтровать$str = 'текстовый текст со словом аааааа. вот.';// кодировкаiconv_set_encoding('internal_encoding', 'UTF-8');$all = iconv_strlen($str);$out = ' '; // 3 пробелаfor($i=0; $i<$all; ++$i){ $tmp = iconv_substr($str, $i, 1); if($tmp != iconv_substr($out, -1, 1) || $tmp != iconv_substr($out, -2, 1) || $tmp != iconv_substr($out, -3, 1)){ $out.= $tmp; }}print $out = trim($out);?>

но есть проблемка, это очень медленный код. текстовый файл весом 3.5 кб, этот код обрабатывал чуть более 2 секунд.
вероятно можно попробовать разбивать текст по словам и прогонять цикл по словам, а не по каждому символу в отдельности.

Активен

Дополнительно

forum.wapinet.ru

PunBB Mod v0.6.2
0.008 s