Форум успешных вебмастеров - GoFuckBiz.com

  Форум успешных вебмастеров - GoFuckBiz.com > Бизнес-решения > Скрипты, программы и технические решения
Дата
USD/RUB58.7930
BTC/USD0.0000
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии.

Закрытая тема
Опции темы Опции просмотра
Старый 23.04.2012, 20:28   #1
DimaX
Senior Member
 
Регистрация: 19.04.2007
Сообщений: 2,272
Бабло: $294990
По умолчанию [RU] Чистка запросов от CP

Нашел в поиске несколько подобных тем, хотел туда просто апнуть, но все эти темы закрыты. Потому новый топ, вдруг кому полезно будет.

PHP код:
<?

set_time_limit
(0);

#файл с ключевиками, которые надо профильтровать от нелегальщины, ключевики должны быть в нем по 1 штуке на строку
@$file file('keys.txt') or die('Файл с ключами не обнаружен в папке со скриптом, либо почему-то не может быть прочитан');

echo 
'<b>Всего '.count($file).' ключевиков<br>Прогресс:</b> ';

$pattern '@(^.*\b(дети|дите|детс|детя|дитя|мал|девоч|юнн|юна|юны|юной|млад).*)(\b(порн|поре|трах|еб|секс|гол|насил|изнасил|обнаж|шлю|развра|растл|влагал|эро|девств|пис|поп|ягод|ню).*$)|(^.*\b(порн|поре|трах|еб|секс|гол|насил|изнасил|обнаж|шлю|развра|растл|влагал|эро|девств|юна|юны|пис|поп|ягод|ню).*)(\b(дети|дите|детс|детя|дитя|мал|девоч|юнн|юна|юны|юной|млад).*$)|(^.*\b(несовершеннолетн|малалет|подростков|малолет|детьми|детей|детск|педофи|ребен).*$)@';#cp

$pattern2 '@(\b(4|5|6|7|8|9|10|11|12|13|14|15|16|17)\D+)|(\D+(4|5|6|7|8|9|10|11|12|13|14|15|16|17)\b)@';#cp

$pattern3 '@(^.*\b(зоо|конь|кони|коня|собак|кошк|овцы|овцу|овец|животн|лошад).*$)@';#zoo

$deleted = array();

foreach (
$file as $i => $key)
    {
        
#если исходные ключевики в UTF-8
        #if (preg_match($pattern, iconv('utf-8', 'windows-1251//IGNORE', trim($key))) || preg_match($pattern2, iconv('utf-8', 'windows-1251//IGNORE', trim($key))) || preg_match($pattern3, iconv('utf-8', 'windows-1251//IGNORE', trim($key))))
        #если исходные ключевики в windows-1251
        
if (preg_match($patterntrim($key)) || preg_match($pattern2trim($key)) || preg_match($pattern3trim($key)))
            {
                unset(
$file[$i]);
                
                
$deleted[] = trim($key);
            }
        
        
#показывать каждый 1000-ый номер обработанной строки, чтобы видеть прогресс выполнения
        
if ($i 1000 == 0)
            {
                echo 
$i.' ';flush();
            }
    }

$f fopen('keys_clean.txt''w');
fwrite($fimplode(''$file));
fclose($f);

$f fopen('keys_deleted.txt''w');
fwrite($fimplode("\n"$deleted));
fclose($f);

echo 
'<br><b>Удалено '.count($deleted).' плохих ключевиков</b>';
Регулярки предназначены для чистки адалт ключевиков.
Смешанные базы ими чистить не рекомендуется, ибо будет рубить много лишнего.
DimaX вне форума