{% else-1 %}
Граббер с bash.org.ru

                        
<?php
/*
*bash.org.ru rss граббер
*автор: disable
*30.09.07
*/

//грузим rss файл
$data=file_get_contents('http://bash.org.ru/rss');

//обрабатываем
$dat=array();
preg_match_all('|<pubDate>(.+)</pubDate>|',$data,$dat);

$content=array();
preg_match_all('|<description><!\[CDATA\[(.+)\]\]></description>|',$data,$content);

//теперь у нас есть 2 массива по 100 элементов, воспользуемся постраничным выводом

//всего элементов
$all=count($content[1]);

//число сообщений на странице
$pnumber=5;

//номер страницы
$page=(isset($_GET['page'])) ? (int)$_GET['page'] : 1;

//число страниц
$num_pages=ceil($all/$pnumber);

//начальная позиция
$start=$page*$pnumber-$pnumber;

//проверка номера страницы
if ($page > $num_pages || $page < 1)
{
$page=1;
$start=0;
}

//посылаем заголовок
header('Content-type:text/html;charset=utf-8');

//выводим верх страницы (html код, выносим за <?php
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>bash.org.ru</title>
</head>
<body>
<?php

//выводим цитаты
if ($all)
{
for ($i=$start; $i<$start+$pnumber; $i++)
{
//if (!isset($dat[1][$i])) break;
echo '<p style="border:1px solid;padding:2px">';
echo $dat[1][$i];
echo '<br />';

//не забываем про утф-8
echo iconv('windows-1251','utf-8',$content[1][$i]);

echo '</p>';
}

//навигация
echo '<p>';

for($pr = '', $i =1; $i <= $num_pages; $i++)
{
echo $pr=(($i == 1 || $i == $num_pages || abs($i-$page) < 2) ? ($i == $page ? " [$i] " : ' <a href="'.$_SERVER['SCRIPT_NAME'].'?page='.$i.'">'.$i.'</a> ') : (($pr == ' ... ' || $pr == '')? '' : ' ... '));
}

echo '</p>';
}
else
{
echo '<p>цитат нет</p>';
}

//закрываем теги
?>
</body>
</html>
0 52 0
0

Нет фото
• 14 май 2013, 22:19


Не столь важно

0

Нет фото
• 14 май 2013, 21:42


http://bash.im

0

Нет фото
• 14 май 2013, 21:41


давно уже они переехали