// тут соединение с вашей бд, где расположена нужная таблица, в нашем примере это таблица news
$connect_db = mysqli_connect( 
'localhost',  /* Хост, к которому мы подключаемся */ 
'user_name',       /* Имя пользователя */ 
'passwords',   /* Используемый пароль */ 
'bd_name');     /* База данных для запросов по умолчанию */ 

$query = "SELECT * FROM news ORDER BY data_dob DESC";  // делаем выборку всех записей таблицы и сортируем ее по дате добавления новости
$rs_result = mysqli_query($connect_db, $query);
$all_item=null;
mysqli_close($connect_db);


while ($row = mysqli_fetch_assoc($rs_result)) { 

$data_dob = date(DATE_RFC822, strtotime($row['data_dob'])); // переводим дату в нужный для RSS формат

$id =  $row['id']; // ид записи (новости)
$title =  $row['title']; // заголовок новости
$des =  strip_tags($row['des']); // описание новости, удаляем все html теги
$image =  $row['image']; // картинка новости (превью)
$text =  $row['text']; // текст новости (в тексте новости могут быть лишние теги, картинки которые с относительными путями к рисункам, а они должны быть абсолютными)

// преобразуем пути картинок, т.е вместо /img_news/image.jpg должно быть https://seolik.ru/img_news/image.jpg
$text = str_ireplace("/img_news/", "https://seolik.ru/img_news/", $text);

// ищем все картинки в новости и добавляем их в описании публикации
$doc = new DOMDocument();
@$doc->loadHTML($text);

$tags = $doc->getElementsByTagName('img');

foreach ($tags as $tag) {
$enclosure .= '<enclosure url="'.$tag->getAttribute('src').'" type="image/jpeg" />'.PHP_EOL;
}


// удаляем все атрибуты style
$text = preg_replace('/(<[^>]+) style=".*?"/iu', '$1', $text);


// все рисунки помещаем в тег <figure>
$text = preg_replace('/(<img.+?>)/iu','<figure>$1</figure>', $text);

// Преобразует все HTML-сущности в соответствующие символы 
$text = html_entity_decode($text); 

// Удаляем все html теги кроме нужных нам в разметке
$text =  strip_tags($text, '<p><a><img><figure>');


// ПЕРЕМЕННАЯ превью картинки. Первое изображение в статье, размеченное этим элементом, отображается на карточке в ленте Дзена
$image_first = '<figure><img src="https://seolik.ru'.$image.'"></figure>';

// добавляем элементы item rss для Дзен https://yandex.ru/support/zen/publishers/rss-modify.html#publication
$all_item = $all_item.'
<item>
    <title>'.$title.'</title>
    <link>https://seolik.ru/news/'.$id.'</link>
    <pdalink>https://seolik.ru/news/'.$id.'</pdalink>
    <media:rating scheme="urn:simple">nonadult</media:rating>
    <pubDate>'.$data_dob.'</pubDate>
    <author>SeoLik.ru</author>
    <category>Технологии</category>
    <enclosure url="https://seolik.ru'.$image.'" type="image/jpeg"/>
	'.$enclosure.'
    <description>
        <![CDATA[
'.$image_first.'
'.$des.'
        ]]>
    </description>
    <content:encoded>
        <![CDATA[
       '.$text.'
        ]]>
    </content:encoded>
</item>';
}


// начало описание источника https://yandex.ru/support/zen/publishers/rss-modify.html#source
$channel = '<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:media="http://search.yahoo.com/mrss/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:georss="http://www.georss.org/georss">
<channel>
<title>Новости - SeoLik</title>
<link>https://seolik.ru/news</link>
<description>
Новости мира СЕО, маркетинга, интернет рекламы, а так же новости сервиса сео нструментов SeoLik.ru
</description>
<language>ru</language>';

// окончание описания источника
$channel_end = '</channel></rss>';

// записываем готовый rss в файл
$gotovo = $channel.$all_item.$channel_end;
$file = $_SERVER['DOCUMENT_ROOT'].'/zen-news.xml';
file_put_contents($file, $gotovo);