Декодер от doska.ru и ss.lv Чтоб телефон парсить Code: print_phone( 'JUFDJTk5JUFBUiU5RCU5RCVBOSU5MXklOTAlOTZ1JUFFJUFCJUM0JTk1JThFJUI1JTg2JTg2JTkzJTkzJUE5dSU5RiVBMyU4NyU5NyVBOCVDMiVCOCU4NyVCMnIlQTklOEQlOEMlRDglODUlODAlN0IlQTAlQzclQzMlQUElREMlODUlQ0RwJUE3JUI0JUFBJUIxdCU5NSU5NiU4MyVDRSVBNCVDNSVCMSU4OSVBRSU4QiVBMiU4RSU4NyVDQiU3RSU5MHQlQTYlQUUlQUMlQTclQTUlQTglQTR0JTg3JTlBJUE3JUI1cSU4RWtvJUEx', 1 ); PHP: function ph_dec($data, $key, $mode ){ // unescape $v = base64_decode($data); $data = urldecode($v); $L = strlen($key); $x = strlen($data); $dec = ''; $a; $b; for($i = 0; $i < $x; $i++ ){ $a = substr($data,$i, $i+1 ); $b = substr($key, $i%$L, $i%$L +1 ); if($mode == 1) $a = ord($a) - ord($b); else if($mode == 2) $a= ord($a) - ord($b) + 14; else $a = ord($a)^ord($b); $dec .= chr($a); } return $dec; } function js_dec2($ph ){ return ph_dec(ph_dec($ph,'mB7Q=j.Fpsg0mds',1), 'H-Feps)XbWl,ToY', 0 ); } function js_decode($ph) { return js_dec2(ph_dec($ph,'pRo-aWLm=J8@reg',2)); } echo $a =js_decode('JUFDJTk5JUFBUiU5RCU5RCVBOSU5MXklOTAlOTZ1JUFFJUFCJUM0JTk1JThFJUI1JTg2JTg2JTkzJTkzJUE5dSU5RiVBMyU4NyU5NyVBOCVDMiVCOCU4NyVCMnIlQTklOEQlOEMlRDglODUlODAlN0IlQTAlQzclQzMlQUElREMlODUlQ0RwJUE3JUI0JUFBJUIxdCU5NSU5NiU4MyVDRSVBNCVDNSVCMSU4OSVBRSU4QiVBMiU4RSU4NyVDQiU3RSU5MHQlQTYlQUUlQUMlQTclQTUlQTglQTR0JTg3JTlBJUE3JUI1cSU4RWtvJUEx'); переписана с яваскрипта
Часть 2 Идет выборка тел номеров за сегодня.. PHP: /* Telephone number parser * Beta version from easy user * Curl(lib) must be! * in php.ini extension=php_curl.dll !!! * Work in ss.lv **/ include("decoder.php"); function connection() { $server='localhost'; $user=''; $password=''; $database='telbot'; $connect = mysql_connect($server,$user,$password) ; if(!$connect) { echo mysql_error($connect); } if(!mysql_select_db($database,$connect)) { echo mysql_error($connect); } return $connect; } // проверка номера function cheaknumber($num) { connection(); $q ="select * from number where num='".$num."' "; $rezult = mysql_query($q); if(!$rezult) echo mysql_error(); if(mysql_num_rows($rezult) > 0) { return false; } else { return true; } } // втавка номера function insert($num) { connection(); $q="insert into number(num,date) values('$num',NOW())"; $rezult = mysql_query($q); if(!$rezult) echo mysql_error(); } // проверкка ссылки function cheaklink($link) { connection(); $q ="select * from link where links='".$link."' "; $rezutl = mysql_query($q); if(mysql_num_rows($rezutl) > 0) return false; else { return true; } } // вставка линка function links($id) { connection(); $q="insert into link(links) values('$id')"; $rezult = mysql_query($q); if(!$rezult) echo mysql_error(); } function Sellink($url) { connection(); $q="SELECT * from link"; $rezult = mysql_query($q); if(!$rezult) echo mysql_error(); //f(mysql_num_rows($rezult)>0) { while($rows= mysql_fetch_array($rezult)) Finnumber($url,$rows['links']); } } function Findurl($http,$path,$lv=0) { $curl = curl_init($http.$path); // Параметры соединения curl_setopt($curl, CURLOPT_RETURNTRANSFER,1); curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.4) Gecko/20060516 SeaMonkey/1.0.2'); // Получаем соедржимое страницы $id2 = curl_exec($curl); curl_close($curl); //ищем ссылки на обьявления $pat2 = '#href=\"(/msg/lv/work/are-required/.*\.html)\"#im'; $total = preg_match_all($pat2,$id2,$poc2) ; //print_r($poc2[1]); for($i=0; $i < $total-1; $i++) { if(cheaklink($poc2[1][$i])) { links($poc2[1][$i]); } } $pats3='#href=\"(/lv/work/are-required/today/page\d\.html)\"#im'; $tot = preg_match_all($pats3, $id2,$pock); // print_r($pock); if($lv < $tot) { for($i=0; $i < $tot; $i++) { Findurl('http://www.ss.lv',$pock[1][$i],$lv+1); } } } function Finnumber($http,$path) { $curl = curl_init($http.$path); // Параметры соединения curl_setopt($curl, CURLOPT_RETURNTRANSFER,1); curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.4) Gecko/20060516 SeaMonkey/1.0.2'); // Получаем соедржимое страницы $id3 = curl_exec($curl); curl_close($curl); // ищем закодированую строку $pat = '#print_phone[(](.*)[)]#im'; preg_match_all($pat,$id3,$poc2) ; //print_r($poc2); $n= js_decode($poc2[1][0]); // sample n='2056-34-56'; list($d1,$d2,$d3)=explode('-',$n); echo $nomer =$d1.$d2.$d3; echo "\r\n"; if(cheaknumber($nomer)) { insert($nomer); } } echo "Start grab Link\r\n"; Findurl('http://www.ss.lv','/lv/work/are-required/today/'); echo "Go Seach number\r\n"; Sellink('http://www.ss.lv'); echo "\r\nFinish"; Бекап сам бд. Code: -- phpMyAdmin SQL Dump -- version 2.11.6-dev -- http://www.phpmyadmin.net -- -- Хост: localhost -- Время создания: Июл 10 2009 г., 11:35 -- Версия сервера: 4.1.16 -- Версия PHP: 5.2.9-2 SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; -- -- База данных: `telbot` -- -- -------------------------------------------------------- -- -- Структура таблицы `link` -- CREATE TABLE IF NOT EXISTS `link` ( `id_l` int(11) NOT NULL auto_increment, `links` varchar(255) NOT NULL default '', PRIMARY KEY (`id_l`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=788 ; -- -- Дамп данных таблицы `link` -- -- -------------------------------------------------------- -- -- Структура таблицы `number` -- CREATE TABLE IF NOT EXISTS `number` ( `id` int(11) NOT NULL auto_increment, `num` varchar(11) NOT NULL default '0', `date` datetime NOT NULL default '0000-00-00 00:00:00', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1733 ; -- -- Дамп данных таблицы `number` -- Работает через командную строку. код пустырный но раб 50%..