Сценарий bashorg
Код: Выделить всё
$filename = "/var/www/bashorg/bash.xml"; //где будет находится наш файл с цитатами башорга
$site_path = "https://bash.im/rss/";//откуда берем цитаты
if (!file_exists($filename) or (time() > filemtime($filename) + 60*60*1) ) {//1ч. время жизни нашего файла
get_content($site_path);//если файла нет, или он старее 1 часа, получаем новый
}
// Cоздание объекта SIMPLEXML и загрузка документа
$content = join ("", file($filename));
// Cоздание объекта SIMPLEXML и загрузка документа
$xml = simplexml_load_string($content);
foreach ($xml->channel->item[rand (0, count($xml->channel->item))]->children() as $items) ;//выбираем случайную запись из rss
//$description = iconv("windows-1251","UTF-8", $items); //конвертируем при необходимости кодировку
sg('bash.bashorg',$items); //выводим цитату
function get_content($site_path) //функция загрузки файла, не идеал, но работает
{
//загружаем
$fd = fopen($site_path, "r");
$text="";
if (!$fd) echo "Запрашиваемая страница не найдена";
else
{
// Чтение содержимого файла в переменную $text
while (!feof ($fd)) $text .= fgets($fd, 4096);
$fp = fopen("/var/www/bashorg/bash.xml", "w");
fwrite($fp, $text);
fclose ($fp);
}
fclose ($fd);
return true;
}
А уже из bash.bashorg выводим куда надо.
Раз в минуту в bash.bashorg заносится новая запись, а раз в час обновляются цитаты в файле.