<?php
function get_content($hostname, $path) //Функции загрузки страници с любого сайта
{
$line = "";
$fp = fsockopen($hostname, 80, $errno, $errstr, 30);
if (!$fp) exit;
else
{
$headers = "GET $path HTTP/1.1\r\n";
$headers .= "Host: $hostname\r\n";
$headers .= "Connection: Close\r\n\r\n";
fwrite($fp, $headers);
while (!feof($fp))
{
$line .= fgets($fp, 1024);
}
fclose($fp);
return $line;
}
}
function get_news_titles($page) //загрузка предпросмотра
{
$text = get_content('newspoker.ru', '/page/'.$page.'/'); //получаем страничку с сайта
$text = str_replace("\n", '', $text); //убираем переносы строк, чтобы регулярное выражение сработало
$text = str_replace("\r", '', $text); //тоже самое
preg_match_all('#<tr><td class=\"menu2\" ><span style=\"color\: \#999\;\">(.*?)\:<\/span> <span style=\"color\: \#444\;\"><a href=\"(.*?)\">(.*?)<\/a>#i', $text, $matches); // регулярное выражение которым мы получаем заголовок
preg_match_all('#<tr><td ><p><div id=\\'."'".'.*?\\'."'".'>(.*?)<\/div><\/p><\/td><\/tr>#i', $text, $matches2); //регулярное выражение которым получаем текст
//print_r($matches);
$matches[0] = '';
$matches[4] = $matches2[1];
$i = 0;
while($i < 15) //записуем все полученые значения
{
$return[$i][1] = $matches[1][$i];
$return[$i][2] = $matches[2][$i]; //ссылка на полную новость
$return[$i][3] = $matches[3][$i]; //заголовок
$return[$i][4] = $matches[4][$i]; //короткая новость
$i++;
}
return($return);
}
function get_news($url, $short_story) //предаеться функции ссылка на полную новость и уже полученая короткая
{
preg_match('#http:\/\/newspoker\.ru\/([\S]*)\/([\S]*)\.html#i', $url, $matches); //разбираем адресс на 2 части url и подпапки
$text = get_content('newspoker.ru', '/'.$matches[1].'/'.$matches[2].'.html'); //загружаем страницу
$altern = $matches[2];
//print_r($matches);
$text = str_replace("\n", '', $text);
$text = str_replace("\r", '', $text);
//print $text;
preg_match('#<tr><td class="menu2" ><span style="color: \#999;">.*?<\/span><h1 style="font-size:18px;">(.*?)<\/h1><\/td><\/tr>[\s]*<tr><td class="menu2_bot"> Автор: .*?<\/td><\/tr>[\s]*<tr><td ><p><a name="newsbegins"><\/a><div id=\\\'.*?\\\'>(.*?)<\/div><a name="newsends"><\/a>#i', $text, $matches1); //с помощью регулярного выражения забираем полную новость
//print_r($matches1);
$title = $matches1[1]; //заголовок
$text = $matches1[2]; //текст
$text = $text.'<br><br>Источник: newspoker.ru'; //дописываем к тексту источник чтобы потом сайт не ругался на меня
global $db, $member_db; //подгружаем класс для БД
$text = str_replace("'", '\\\'', $text); //экранируем '
$short_story = str_replace("'", '\\\'', $short_story); //везде
$title = str_replace("'", '\\\'', $title); //везде
create_metatags($short_story.$text); //создаем метатеги
$thistime = date ("Y-m-d H:i:s"); //берем текущее время
$db->query("INSERT INTO " . PREFIX . "_post (date, autor, short_story, full_story, xfields, title, descr, keywords, category, alt_name, allow_comm, approve, allow_main, fixed, allow_rate, allow_br, votes, access, expires, symbol, flag) values ('$thistime', '$member_db[2]', '$short_story', '$text', '', '$title', '{$metatags['description']}', '{$metatags['keywords']}', '3', '{$altern}', '1', '1', '1', '0', '1', '1', '0', '', '0000-00-00', '', '1')"); // пишем все в бд
}
/*
*/
//насчет функций все
$action = $_GET[act];
if($action == 'add') //если событие добавить, тогда
{
if($_POST[url] and $_POST[short]) //получаем переданые данные
{
$short = str_replace("\\\"", '"', str_replace("\\'", "'", $_POST[short]));
get_news($_POST[url], $short); // с помощью функции добавляем новость
//print ();
msg("info",$lang['addnews_ok'], 'Новость добавлена'); // выдаем сообщение
}
else
{
echo'no url'; //если данных нет ошибка
}
}
else //если добавлять не надо то выдаем список новостей
{
echoheader("", "");
$cur = $_GET[page]; //получаем страницу
if($cur=='') $cur = 1;
while($p < 10) //создаем навигацию на 10 страниц
{
if($cur == $p+1)
{
$pages .= ($p+1).' ';
}
else
{
$pages .= "<a href='?mod=newsload&page=".($p+1)."'>".($p+1)."</a> ";
}
$p = $p + 1;
}
$titles = get_news_titles($cur); //получаем заголовки новосте
foreach($titles as $key=>$value) //выводим все на экран
{
/*<form action=?mod=newsload&act=add method=post target=_blank><input type=hidden name=url value='".$titles[$key][2]."'><input type=hidden name=short value='".str_replace("'", "\\'", $titles[$key][4])."'><input type=submit value='Добавить'></form>*/
$list .= "<tr><td valign=top><form action=?mod=newsload&act=add method=post><input type=hidden name=url value='".$titles[$key][2]."'><div style='display:none'><textarea cols='0' rows='0' name=short>".$titles[$key][4]."</textarea></div><input type=submit value='Добавить'></form></td><td><b>".$titles[$key][3]."</b><br>".$titles[$key][4]."</td></tr><tr><td background=\"engine/skins/images/mline.gif\" height=1 colspan=2></td></tr>";
}
//print_r($titles);
echo <<<BOBR
<div style="padding-top:5px;padding-bottom:2px;">
<table width="100%">
<tr>
<td width="4"><img src="engine/skins/images/tl_lo.gif" width="4" height="4" border="0"></td>
<td background="engine/skins/images/tl_oo.gif"><img src="engine/skins/images/tl_oo.gif" width="1" height="4" border="0"></td>
<td width="6"><img src="engine/skins/images/tl_ro.gif" width="6" height="4" border="0"></td>
</tr>
<tr>
<td background="engine/skins/images/tl_lb.gif"><img src="engine/skins/images/tl_lb.gif" width="4" height="1" border="0"></td>
<td style="padding:5px;" bgcolor="#FFFFFF">
<table width="100%">
<tr>
<td bgcolor="#EFEFEF" height="29" style="padding-left:10px;"><div class="navigation">Выбор новости</div></td>
</tr>
</table>
<div class="unterline"></div>
<table width="100%">
<tr>
<td width=150>Добавить</td>
<td>Предпросмотр</td>
</tr>
<tr><td colspan="2"><div class="hr_line"></div></td></tr>
{$list}
<tr><td colspan="2"><div class="hr_line"></div></td></tr>
<tr><td colspan="2">{$pages}</td></tr>
</table>
</td>
<td background="engine/skins/images/tl_rb.gif"><img src="engine/skins/images/tl_rb.gif" width="6" height="1" border="0"></td>
</tr>
<tr>
<td><img src="engine/skins/images/tl_lu.gif" width="4" height="6" border="0"></td>
<td background="engine/skins/images/tl_ub.gif"><img src="engine/skins/images/tl_ub.gif" width="1" height="6" border="0"></td>
<td><img src="engine/skins/images/tl_ru.gif" width="6" height="6" border="0"></td>
</tr>
</table>
</div>
BOBR;
echofooter();
}
?>