Показать сообщение отдельно

  #67  
Старый 11.04.2007, 16:38
mamamot
Познающий
Регистрация: 20.02.2007
Сообщений: 41
С нами: 10116066

Репутация: 48
По умолчанию

Очередной скрипт на php.
Сегодня мы нашли сайт с кучей прокси. Но они там, как назло, в ужасном виде:
Код:
HTTP	203.94.89.112	80	No	UnResolved	UnResolved	704	No
HTTP	66.165.172.163	80	No	UnResolved	UnResolved	562	No
HTTP	212.227.80.22	3128	No	UnKnown	s15179588.rootmaster.info	4328	No
HTTP	219.95.65.250	80	No	UnResolved	UnResolved	1047	No
HTTP	85.88.182.139	3128	No	Russia	not-defined-pppoe.amur.ru	1032	No
т.е. по одной прокси и порту в строке, но с кучей мусорной инфы
мы превратим его в нормальный вид так:
PHP код:
<?php
    
//////////////////////////////////////////////////////////////////
    //proxy_list_generator.php
    //creats an ip:port proxylist
    //coded by mamamot, 2007
    //////////////////////////////////////////////////////////////////
    //задаем регулярные выражения
    
$ip_regex="/([0-9]|[0-9][0-9]|[01][0-9][0-9]|2[0-4][0-9]|25[0-5])(\.([0-9]|[0-9][0-9]|[01][0-9][0-9]|2[0-4][0-9]|25[0-5])){3}/";
    
$port_regex="/([\s])(\d|[1-9]\d|[1-9]\d{2,3}|[1-5]\d{4}|6[0-4]\d{3}|654\d{2}|655[0-2]\d|6553[0-5])([\s])/";
    
//читаем файл
    
$raw=file("rawproxy.txt");
    
//счетчик
    
$counter=0;
    
//перебираем каждую строку
    
foreach($raw as $line)
    {
        
$is_ip_match preg_match($ip_regex$line$ipmatch);
        if(
$is_ip_match==1)
        {
            
$ip=$ipmatch[0];
            
$is_port_match=preg_match($port_regex$line$port_match);
            if(
$is_port_match==1)
            {
                
$port=$port_match[0];
                
//убираем символы табуляции
                
$port=str_replace("\t","",$port);
                
//добавляем в строку. Замените \r\n на \n если работете на никсах
                
$output .= $ip.':'.$port."\r\n";
                
$counter++;
            }
        }
    }
    
//пишем в файл
    
file_put_contents("proxies.txt"$output);
    echo 
"done succesfully:".$counter."items parsed";
?>
да еще и посчитаем заодно
 
Ответить с цитированием