<? @session_start(); @set_time_limit (0); // Соединение с MySQL. Используем данные указанные в настройках вашего DLE. ------------------------------------------------------------------------------------------------------------------ define ("DATALIFEENGINE", "true"); define ( 'ROOT_DIR', '../' ); define ( 'ENGINE_DIR', ROOT_DIR . '/engine' ); include("../engine/classes/mysql.class.php"); include("../engine/data/dbconfig.php"); include("../engine/data/config.php"); mysql_connect(DBHOST, DBUSER, DBPASS); mysql_query("/*!40101 SET NAMES 'cp1251' */"); if(!@mysql_select_db(DBNAME)) { $host="localhost"; // server: localhost (127.0.0.1) $user="root"; // Юзер MySQL $pass=""; // Пароль к Юзеру MySQL $dbname="wrz"; // Имя базы данных MySQL function conn() { global $conn, $host, $user, $pass, $dbname; $conn=mysql_connect($host,$user,$pass); echo mysql_error(); mysql_query("/*!40101 SET NAMES 'cp1251' */"); mysql_select_db($dbname); } conn(); } $sqlcat=mysql_query("SELECT * FROM dle_category"); // ------------------------------------------------------------------------------------------------------------------ class httpclient { var $url; function getHtml() { $ref = "http://www.google.com"; $ch = curl_init($this->url); curl_setopt( $ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20041001 Firefox/0.10.1" ); curl_setopt( $ch, CURLOPT_URL, $this->url ); curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookiefile'); curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookiefile'); curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, true ); curl_setopt( $ch, CURLOPT_ENCODING, "" ); curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true ); curl_setopt( $ch, CURLOPT_AUTOREFERER, true ); curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false ); curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, 10 ); curl_setopt( $ch, CURLOPT_TIMEOUT, 30 ); curl_setopt( $ch, CURLOPT_MAXREDIRS, 10 ); $result = curl_exec($ch); curl_close($ch); return $result; } function mylog($log) { $tm = date ("d-m-Y H:i:s"); echo "[$tm] - $log...<br />"; flush(); } function mylog_err($log) { $tm = date ("d-m-Y H:i:s"); echo "<span style=\"color: red\">[$tm] - $log...</span><br />"; flush(); } } if (isset($_POST[smb])) { $http1 = new httpclient(); for ($i=0; $i < $_POST[kol]; $i++) { $error = false; $http1->url = "http://referats.yandex.ru/$_POST[tema].xml"; $http1->mylog("Получаем страницу $http1->url"); $temp1 = $http1->getHtml(); if (!preg_match('/<h1[^>]+>(.*?)<\/h1>/', $temp1, $t_zag)) { $error = true; $http1->mylog_err("Не нашли заголовок. Видимо в бан яшки попали"); } $zag = trim(preg_replace("/Тема:/i", "", $t_zag[1])); if (!preg_match('/<\/h1>\s+(<p>.*<\/p>)\s+<\/div><\/td>/ims', $temp1, $t_text)) { $error = true; $http1->mylog_err("Не нашли текст реферата. Видимо в бан яшки попали"); } $text = strip_tags($t_text[1]); $filename = "000000$i.txt"; if (!$error) { $f = fopen("$filename", "w"); if (fwrite($f, "$zag\n$text")) { $http1->mylog("Реферат успешно записали в файл"); } fclose($f); } echo "<hr />"; if ($_POST[sleep] > 0) { $http1->mylog("Пауза $_POST[sleep] сек"); sleep($_POST[sleep]); } } } else { ?> <form action="" method="post"> Парсим рефераты по <select name="tema"> <option value="astronomy">астрономии</option> <option value="geology">геологии</option> <option value="gyroscope">гироскопии</option> <option value="literature">литературоведению</option> <option value="marketing">маркетингу</option> <option value="mathematics">математике</option> <option value="music">музыковедению</option> <option value="polit">политологии</option> <option value="agrobiologia">почвоведению</option> <option value="law">правоведению</option> <option value="psychology">психологии</option> <option value="geography">страноведению</option> <option value="physics">физике</option> <option value="philosophy">философии</option> <option value="chemistry">химии</option> <option value="estetica">эстетике</option> </select><br /> Количество рефератов <input type="text" name="kol" value="500" /> <br /> Задержка между запросами (сек) <input type="text" value="0" name="sleep" /><br /> Дата публикации новостей:<br/> Текущая<input type=radio name=date value=1 checked=true><br/> Выставить автоматически по диапазону <input type=radio name=date value=2><br/> <input name="date_start" class="date_start" style="width:198px;"/> <input name="date_end" class="date_end" style="width:198px;"/><br/>Даты вводяться в формате ММ/ДД/ГГГГ Автор новостей : <br/> <input type="text" name="autor" style="width:401px;"><br/> Рубрика: <br/> <select name=category style="width:408px;"> <? while($cat=mysql_fetch_array($sqlcat)) { echo "<option value=".$cat['id'].">".$cat['name']."</option>"; } echo "</select>"; echo " <input type='hidden' value='1' name='smb' />"; echo "<br><input type='submit' value='Парсить'>"; echo "</form>"; ?> <? } function translit($str) { $tr = array( "А"=>"a","Б"=>"b","В"=>"v","Г"=>"g", "Д"=>"d","Е"=>"e","Ж"=>"j","З"=>"z","И"=>"i", "Й"=>"y","К"=>"k","Л"=>"l","М"=>"m","Н"=>"n", "О"=>"o","П"=>"p","Р"=>"r","С"=>"s","Т"=>"t", "У"=>"u","Ф"=>"f","Х"=>"h","Ц"=>"ts","Ч"=>"ch", "Ш"=>"sh","Щ"=>"sch","Ъ"=>"","Ы"=>"yi","Ь"=>"", "Э"=>"e","Ю"=>"yu","Я"=>"ya","а"=>"a","б"=>"b", "в"=>"v","г"=>"g","д"=>"d","е"=>"e","ж"=>"j", "з"=>"z","и"=>"i","й"=>"y","к"=>"k","л"=>"l", "м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r", "с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"h", "ц"=>"ts","ч"=>"ch","ш"=>"sh","щ"=>"sch","ъ"=>"y", "ы"=>"yi","ь"=>"","э"=>"e","ю"=>"yu","я"=>"ya", " "=> "_", "."=> "", "/"=> "_" ); return preg_replace('/[^A-Za-z0-9_\-]/', '', strtr($str,$tr)); } for ($i=1; $i<=$_POST[kol]; $i++){ $fn = "000000$i.txt"; $fp = fopen($fn, "r"); if(!$fp) exit("Такой файл не существует"); $title = trim(fgets($fp, filesize($fn))); $story = trim(fread($fp, filesize($fn))); $temp = explode("\n", $story, 2); $short = trim($temp[0]); $full = trim($temp[1]); // функция даты публикации if($_POST['date']==2){ $dateminarray = explode("/", $_POST['date_start']); $datemaxarray = explode("/", $_POST['date_end']); $mindate = mktime(mt_rand(00,23),mt_rand(00,59),mt_rand(00,59),$dateminarray[0],$dateminarray[1],$dateminarray[2]); $maxdate = mktime(mt_rand(00,23),mt_rand(00,59),mt_rand(00,59),$datemaxarray[0],$datemaxarray[1],$datemaxarray[2]); $daterand = mt_rand($mindate, $maxdate); $date = date("Y-m-d H:i:s", $daterand); }else{ // В противном случае - текущая дата $date = date("Y-m-d H:i:s"); } $cat=$_POST['category']; // Выбираем случайного автора новости $authorarr = explode("|", $_POST['autor']); $author = $authorarr[mt_rand(0,count($authorarr)-1)]; mysql_query("INSERT INTO `dle_post` (`autor`, `date` , `short_story` , `full_story` , `tags`, `title` , `category` , `approve`, `allow_main` , `allow_comm`, `allow_rate`, `news_read`, `alt_name`) VALUES ('".$author."','".$date."', '".$short."', '".$full."', ' ', '".$title."', '".$cat."' , '1', '1', '1', '1', '0', '".translit($title)."')"); // Обновляем количество записей у автора публикации mysql_query( "UPDATE " . PREFIX . "_users set news_num=news_num+1 where name=".$author."" ); } //clear_cache(); ?>
чучуть доделал в папку кидаете (корень/папка)
автаматом берёт даные о базе для DLE
jone21 добавил 13.08.2010 в 00:41
щас делаю подобное только для гугль новостей + задумка с хорошей прибылью кого интересует пишите в аську 154-941