Цитаты из BashOrg: различия между версиями

Материал из MajorDoMo инфо
(Новая страница: «Получение цитат с [https://ru.wikipedia.org/wiki/Bash.im сервиса Bash.org] <pre> $filename = "/var/www/bashorg/bash.xml"; //где буде...»)
 
Нет описания правки
Строка 1: Строка 1:
[[Category:Юзеркейсы]]
==Описание==
Получение цитат с [https://ru.wikipedia.org/wiki/Bash.im сервиса Bash.org]
Получение цитат с [https://ru.wikipedia.org/wiki/Bash.im сервиса Bash.org]


==Код==
<pre>
<pre>
$filename = "/var/www/bashorg/bash.xml"; //где будет находиться наш файл с цитатами башорга
$filename = "/var/www/bashorg/bash.xml"; //где будет находиться наш файл с цитатами башорга

Версия от 09:14, 16 января 2020

Описание

Получение цитат с сервиса 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;
}