Цитаты из BashOrg

Материал из MajorDoMo инфо
Версия от 09:45, 16 января 2020; Neonov (обсуждение | вклад) (→‎Код)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

Описание

Получение цитат с сервиса Bash.org

Код

$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));
// CSоздание объекта SIMPLEXML и загрузка документа
$xml = simplexml_load_string($content);
foreach ($xml->channel->item[rand (0, count($xml->channel->item))]->children() as $items) ;//выбираем случайную запись из rss
//$items = iconv("windows-1251","UTF-8", $items); //конвертируем при необходимости кодировку
$items = str_replace ("<br><br>", "\n", $items);//убираем ненужный двойной перевод строки
$items = str_replace("<br>", "\n",$items);
$items = str_replace(""", "'",$items);
$items = str_replace("<", "'",$items);
$items = str_replace(">", "'",$items);

sg('bash.text',$items); //выводим цитату в свойство text объекта bash

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;
}