Цитаты из BashOrg
Материал из MajorDoMo инфо
Версия от 09:14, 16 января 2020; Newz20 (обсуждение | вклад)
Описание
Получение цитат с сервиса 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 //$description = 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; }