{"id":484769,"date":"2026-06-23T19:45:13","date_gmt":"2026-06-23T19:45:13","guid":{"rendered":"https:\/\/savepearlharbor.com\/?p=484769"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=484769","title":{"rendered":"\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f RSS-\u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u043d\u0430 \u00ab\u043a\u043e\u043b\u0435\u043d\u043a\u0435\u00bb \u0438\u043b\u0438 \u043d\u0430\u0448 \u043e\u0442\u0432\u0435\u0442 \u0427\u0435\u043c\u0431\u0435\u0440\u043b\u0435\u043d\u0443"},"content":{"rendered":"<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0412\u0441\u0451 \u043d\u0430\u0447\u0430\u043b\u043e\u0441\u044c \u0441 \u0431\u0430\u043d\u0430\u043b\u044c\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u2014 \u044f \u0438 \u043c\u043e\u044f \u043d\u0430\u043f\u0430\u0440\u043d\u0438\u0446\u0430 \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u044c \u0410\u0441\u0441\u0438 \u0437\u0430\u0434\u0443\u043c\u0430\u043b\u0438\u0441\u044c \u043d\u0430\u0434 SEO-\u043f\u0440\u043e\u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435\u043c \u0438 \u0430\u0434\u0430\u043f\u0442\u0430\u0446\u0438\u0435\u0439 \u043d\u0430\u0448\u0435\u0433\u043e <a href=\"https:\/\/zassyha.ru\" rel=\"noopener noreferrer nofollow\">\u0441\u0430\u0439\u0442\u0430<\/a>  \u043f\u043e\u0434 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0440\u0435\u0430\u043b\u0438\u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u043f\u043e\u0438\u0441\u043a\u0430 (GEO \/ RAG) \u0438 \u043a\u0440\u0430\u0443\u043b\u0435\u0440\u044b \u044f\u0437\u044b\u043a\u043e\u0432\u044b\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 (GPTBot, ClaudeBot, Perplexity). \u041f\u043e \u0441\u0442\u0430\u0440\u043e\u0439 \u043f\u0440\u0438\u0432\u044b\u0447\u043a\u0435 \u0440\u0435\u0448\u0438\u043b\u0438 \u043f\u043e\u0433\u043b\u044f\u0434\u0435\u0442\u044c, \u043a\u0430\u043a \u044d\u0442\u0443 \u0437\u0430\u0434\u0430\u0447\u0443 \u0440\u0435\u0448\u0430\u044e\u0442 \u0434\u0440\u0443\u0433\u0438\u0435 \u00ab\u0432\u0437\u0440\u043e\u0441\u043b\u044b\u0435 \u0434\u044f\u0434\u0438\u00bb, \u043e\u0442\u043a\u0440\u044b\u043b\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u0434\u043b\u044f \u0441\u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u0438 \u0432 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 CMS\u2026 \u0438, \u043c\u044f\u0433\u043a\u043e \u0433\u043e\u0432\u043e\u0440\u044f, \u043e\u0444\u0438\u0433\u0435\u043b\u0438. \u0422\u043e, \u0447\u0442\u043e \u0432 \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u043c BigTech \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u043c \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0431\u0430\u043d\u0430\u043b\u044c\u043d\u043e\u0439 XML-\u043b\u0435\u043d\u0442\u044b, \u043d\u0430 \u043f\u043e\u0432\u0435\u0440\u043a\u0443 \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u043a\u0440\u043e\u043c\u0435\u0448\u043d\u044b\u043c \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u044b\u043c \u0430\u0434\u043e\u043c.<\/p>\n<h3>      \u0410\u043d\u0430\u0442\u043e\u043c\u0438\u044f \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0430\u0434\u0430: \u0411\u0438\u0442\u0440\u0438\u043a\u0441 \u0438 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043c\u043e\u043d\u0441\u0442\u0440\u044b.<\/h3>\n<p>\u041a\u043e\u0433\u0434\u0430 \u043a\u0440\u0430\u0443\u043b\u0435\u0440 \u0441\u0442\u0443\u0447\u0438\u0442\u0441\u044f \u0437\u0430 <strong>RSS<\/strong> \u043a \u0442\u0438\u043f\u0438\u0447\u043d\u043e\u043c\u0443 \u044d\u043d\u0442\u0435\u0440\u043f\u0440\u0430\u0439\u0437-\u0434\u0432\u0438\u0436\u043a\u0443, \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441\u0443\u0449\u0438\u0439 \u043a\u043e\u0448\u043c\u0430\u0440, \u0441\u0443\u0434\u0438\u0442\u0435 \u0441\u0430\u043c\u0438:<\/p>\n<ol>\n<li>\n<p><strong>Bitrix<\/strong> (\u041a\u043e\u0440\u043e\u043b\u044c \u0442\u043e\u0440\u043c\u043e\u0437\u043e\u0432): \u042d\u0442\u043e \u0432\u043e\u043e\u0431\u0449\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0442\u0435\u043b \u0434\u043b\u044f \u043c\u0430\u0437\u043e\u0445\u0438\u0441\u0442\u043e\u0432. \u0427\u0442\u043e\u0431\u044b \u043e\u0442\u0434\u0430\u0442\u044c \u043a \u043f\u0440\u0438\u043c\u0435\u0440\u0443 15 \u043d\u043e\u0432\u043e\u0441\u0442\u0435\u0439, \u0411\u0438\u0442\u0440\u0438\u043a\u0441 \u043f\u043e\u0434\u043d\u0438\u043c\u0430\u0435\u0442 \u0432\u0441\u0451 \u0441\u0432\u043e\u0451 \u043c\u043e\u043d\u0441\u0442\u0440\u0443\u043e\u0437\u043d\u043e\u0435 \u044f\u0434\u0440\u043e, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442 prolog_before.php, \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0442\u044b\u0441\u044f\u0447\u0438 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442 \u0438 \u043b\u0435\u0437\u0435\u0442 \u0432 \u0431\u0430\u0437\u0443 \u0447\u0435\u0440\u0435\u0437 ORM, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 SQL-\u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0434\u043b\u0438\u043d\u043e\u0439 \u0432 \u043a\u0438\u043b\u043e\u043c\u0435\u0442\u0440. \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u00ab\u041a\u043e\u043c\u043f\u043e\u0437\u0438\u0442\u043d\u044b\u0439 \u0441\u0430\u0439\u0442\u00bb \u2014 \u0433\u043e\u0442\u043e\u0432\u044c\u0442\u0435\u0441\u044c \u043a \u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u043a\u044d\u0448 \u0431\u0443\u0434\u0435\u0442 \u0438\u043d\u0432\u0430\u043b\u0438\u0434\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u0431\u043e\u0442 \u0436\u0434\u0435\u0442 \u043e\u0442\u0432\u0435\u0442\u0430. \u0418\u0442\u043e\u0433: \u0441\u0435\u0440\u0432\u0430\u043a \u043f\u043e\u0442\u0435\u0435\u0442, \u043f\u0430\u043c\u044f\u0442\u044c \u0436\u0440\u0451\u0442\u0441\u044f, \u0430 \u043a\u0440\u0430\u0443\u043b\u0435\u0440 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043e\u0442\u0432\u0435\u0442 \u0447\u0435\u0440\u0435\u0437 500\u2013800 \u043c\u0441. \u0417\u0430 \u044d\u0442\u043e \u0432\u0440\u0435\u043c\u044f \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0440\u0430\u043a\u0435\u0442\u0443 \u0432 \u043a\u043e\u0441\u043c\u043e\u0441.<\/p>\n<\/li>\n<li>\n<p><strong>WordPress<\/strong>: \u0422\u0443\u0442 \u043f\u0440\u043e\u0441\u044b\u043f\u0430\u0435\u0442\u0441\u044f \u00ab\u043f\u0440\u043e\u0436\u043e\u0440\u043b\u0438\u0432\u043e\u0435 \u0447\u0443\u0434\u043e\u0432\u0438\u0449\u0435\u00bb. WP_Query \u0434\u0435\u043b\u0430\u0435\u0442 \u043a\u0430\u0441\u043a\u0430\u0434\u043d\u044b\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043a \u043d\u0435\u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0431\u0430\u0437\u0435, \u0432\u044b\u0442\u044f\u0433\u0438\u0432\u0430\u044f \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u0438 \u043c\u0443\u0441\u043e\u0440. \u041f\u043e\u0442\u043e\u043c \u044d\u0442\u043e \u0432\u0441\u0451 \u043f\u0440\u043e\u0433\u043e\u043d\u044f\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u0430\u0434 \u0438\u0437 \u0441\u043e\u0442\u0435\u043d \u0445\u0443\u043a\u043e\u0432 \u0438 \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432. \u0415\u0441\u043b\u0438 \u0441\u0442\u043e\u044f\u0442 \u043f\u043b\u0430\u0433\u0438\u043d\u044b \u0442\u0438\u043f\u0430 Yoast \u2014 \u043e\u043d\u0438 \u043f\u0435\u0440\u0435\u043b\u043e\u043f\u0430\u0447\u0438\u0432\u0430\u044e\u0442 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 \u041e\u0417\u0423 \u043f\u043e \u043a\u0440\u0443\u0433\u0443. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442: 200\u2013300 \u043c\u0441 \u043d\u0430 \u0440\u043e\u0432\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435.<\/p>\n<\/li>\n<li>\n<p><strong>Magento<\/strong> \/ <strong>Drupal<\/strong>: \u0422\u0443\u0442 \u0432\u043e\u043e\u0431\u0449\u0435 \u0442\u0443\u0448\u0438\u0442\u0435 \u0441\u0432\u0435\u0442. \u0427\u0442\u043e\u0431\u044b \u0432\u044b\u043f\u043b\u044e\u043d\u0443\u0442\u044c \u0442\u0435\u0433 , \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043e\u0431\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u0442 \u0444\u0430\u0439\u043b \u0432 \u0434\u0435\u0441\u044f\u0442\u043e\u043a \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432, \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u043f\u0440\u0430\u0432\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0447\u0435\u0440\u0435\u0437 \u0442\u0440\u0438 \u0441\u043b\u043e\u044f \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u0439 \u0438 \u0442\u0440\u0430\u0442\u0438\u0442 \u043f\u0440\u043e\u0440\u0432\u0443 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u043d\u0430 \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e. <\/p>\n<h3>Unix-way \u0438\u043b\u0438 \u043d\u0430\u0448 \u043e\u0442\u0432\u0435\u0442 \u0427\u0435\u043c\u0431\u0435\u0440\u043b\u0435\u043d\u0443.<\/h3>\n<\/li>\n<\/ol>\n<p>\u041c\u044b \u0432\u044b\u043a\u0438\u043d\u0443\u043b\u0438 \u043d\u0430 \u043c\u043e\u0440\u043e\u0437 \u0432\u0441\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438. \u041d\u0430\u0448\u0430 \u043b\u043e\u0433\u0438\u043a\u0430 \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u043a\u0430\u043a \u0432\u044b\u0441\u0442\u0440\u0435\u043b: \u043e\u0434\u0438\u043d \u043f\u0440\u044f\u043c\u043e\u0439 <strong>UNION<\/strong>-\u0437\u0430\u043f\u0440\u043e\u0441 (\u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u0440\u0430\u0437\u0443 \u0438\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0442\u0430\u0431\u043b\u0438\u0446 \u0437\u0430 \u043e\u0434\u0438\u043d \u0437\u0430\u0445\u043e\u0434), \u043a\u0440\u0438\u0441\u0442\u0430\u043b\u044c\u043d\u043e \u0447\u0438\u0441\u0442\u0430\u044f \u043f\u043e\u0442\u043e\u043a\u043e\u0432\u0430\u044f \u0431\u0443\u0444\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u0432 <strong>XML<\/strong>-\u0441\u0442\u0440\u043e\u043a\u0443 \u0438 \u0436\u0451\u0441\u0442\u043a\u0438\u0439 \u0440\u043e\u0443\u0442\u0438\u043d\u0433. \u041d\u0438\u043a\u0430\u043a\u043e\u0433\u043e \u043c\u0443\u0441\u043e\u0440\u0430, \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0438\u0441\u0442\u044b\u0435 \u0442\u0430\u043a\u0442\u044b \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430. \u0427\u0442\u043e\u0431\u044b \u043d\u0435 \u0434\u0451\u0440\u0433\u0430\u0442\u044c \u0431\u0430\u0437\u0443 \u043f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u043c \u0447\u0438\u0445\u0435 <strong>\u0418\u0418<\/strong>&#8212;<strong>\u043a\u0440\u0430\u0443\u043b\u0435\u0440\u0430<\/strong>, \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044e \u0434\u0435\u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u043d\u0430 \u0434\u0438\u0441\u043a. \u0421\u043a\u0440\u0438\u043f\u0442 \u043e\u0442\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 <strong>rss<\/strong>.<strong>xml<\/strong>.<\/p>\n<pre><code class=\"php\">try {    \/\/ \u041f\u0443\u0442\u044c \u043a \u0444\u0430\u0439\u043b\u0443 \u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f    $rss_file = ROOT_DIR . 'rss.xml';    $site_url = \"https:\/\/yourdomain.com\"; \/\/ \u0423\u043a\u0430\u0436\u0438 \u0441\u0432\u043e\u0439 \u0434\u043e\u043c\u0435\u043d (\u0431\u0435\u0437 \u0441\u043b\u044d\u0448\u0430 \u043d\u0430 \u043a\u043e\u043d\u0446\u0435)        \/\/ \u0423\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0439 SQL-\u0437\u0430\u043f\u0440\u043e\u0441 (\u0437\u0430\u043c\u0435\u043d\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0438 \u043f\u043e\u043b\u044f \u043d\u0430 \u0441\u0432\u043e\u0438)    $rss_sql = \"(SELECT id, title, content, 'section_one' as src, file_name as f_check, date_add, keywords                  FROM table_one WHERE is_active = 1)                 UNION                 (SELECT id, title, content, 'section_two' as src, file_path as f_check, date_add, keywords                  FROM table_two WHERE is_active = 1)                 ORDER BY date_add DESC LIMIT 15\";                    $rss_stmt = $pdo-&gt;query($rss_sql);    $rss_items = $rss_stmt-&gt;fetchAll(PDO::FETCH_ASSOC);    $xml = '&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;' . PHP_EOL;    $xml .= '&lt;rss xmlns:yandex=\"http:\/\/news.yandex.ru\" xmlns:media=\"http:\/\/search.yahoo.com\/mrss\/\" xmlns:atom=\"http:\/\/www.w3.org\/2005\/Atom\" xmlns:content=\"http:\/\/purl.org\/rss\/1.0\/modules\/content\/\" version=\"2.0\"&gt;' . PHP_EOL;    $xml .= '&lt;channel&gt;' . PHP_EOL;    $xml .= '  &lt;title&gt;\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0432\u0430\u0448\u0435\u0433\u043e \u0440\u0435\u0441\u0443\u0440\u0441\u0430&lt;\/title&gt;' . PHP_EOL;    $xml .= '  &lt;link&gt;' . $site_url . '&lt;\/link&gt;' . PHP_EOL;    $xml .= '  &lt;atom:link href=\"' . $site_url . '\/rss.xml\" rel=\"self\" type=\"application\/rss+xml\" \/&gt;' . PHP_EOL;    $xml .= '  &lt;description&gt;\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0432\u0430\u0448\u0435\u0433\u043e \u0440\u0435\u0441\u0443\u0440\u0441\u0430 \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u0445 \u0440\u043e\u0431\u043e\u0442\u043e\u0432 \u0438 \u0430\u0433\u0440\u0435\u0433\u0430\u0442\u043e\u0440\u043e\u0432&lt;\/description&gt;' . PHP_EOL;    $xml .= '  &lt;language&gt;ru&lt;\/language&gt;' . PHP_EOL;    $xml .= '  &lt;lastBuildDate&gt;' . date(DATE_RSS) . '&lt;\/lastBuildDate&gt;' . PHP_EOL;    foreach ($rss_items as $rss_i) {        \/\/ \u0423\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u043e\u0443\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430        $rss_item_url = $site_url . \"\/\" . urlencode($rss_i['src']) . \"?id=\" . (int)$rss_i['id'];        $is_section_two = ($rss_i['src'] === 'section_two');                $xml .= '    &lt;item&gt;' . PHP_EOL;        $xml .= '      &lt;title&gt;' . ($is_section_two ? '[\ud83d\udcce] ' : '') . htmlspecialchars($rss_i['title'], ENT_XML1, 'UTF-8') . '&lt;\/title&gt;' . PHP_EOL;        $xml .= '      &lt;link&gt;' . $rss_item_url . '&lt;\/link&gt;' . PHP_EOL;                \/\/ \u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u0430\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0442\u0435\u043a\u0441\u0442\u0430        $rss_clean_text = strip_tags($rss_i['content']);        $rss_clean_safe = str_replace(']]&gt;', ']]&amp;gt;', $rss_clean_text);                $xml .= '      &lt;description&gt;&lt;![CDATA[' . mb_strimwidth($rss_clean_safe, 0, 300, \"...\") . ']]&gt;&lt;\/description&gt;' . PHP_EOL;                \/\/ \u0423\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 GUID \u0437\u0430\u043f\u0438\u0441\u0438        $xml .= '      &lt;guid isPermaLink=\"false\"&gt;core-' . $rss_i['src'] . '-' . (int)$rss_i['id'] . '&lt;\/guid&gt;' . PHP_EOL;        $xml .= '      &lt;pubDate&gt;' . gmdate(DATE_RSS, strtotime($rss_i['date_add'])) . '&lt;\/pubDate&gt;' . PHP_EOL;        \/\/ \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043f\u0440\u0438\u043a\u0440\u0435\u043f\u043b\u0435\u043d\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \/ \u043c\u0435\u0434\u0438\u0430        if (!empty($rss_i['f_check'])) {            $rss_subfolder = $is_section_two ? 'folder_two' : 'folder_one';            $rss_file_path = ROOT_DIR . 'storage\/' . $rss_subfolder . '\/' . $rss_i['f_check'];            if (file_exists($rss_file_path)) {                $rss_file_size = filesize($rss_file_path);                $rss_ext = strtolower(pathinfo($rss_i['f_check'], PATHINFO_EXTENSION));                                $rss_mime = match($rss_ext) {                    'webp'        =&gt; 'image\/webp',                    'jpg', 'jpeg' =&gt; 'image\/jpeg',                    'png'         =&gt; 'image\/png',                    'svg'         =&gt; 'image\/svg+xml',                    'gz'          =&gt; 'application\/gzip',                    'tar'         =&gt; 'application\/x-tar',                    'zip'         =&gt; 'application\/zip',                    default       =&gt; 'application\/octet-stream'                };                \/\/  \u0427\u0438\u0441\u0442\u044b\u0439 \u0440\u043e\u0443\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432 \u0447\u0435\u0440\u0435\u0437 \u0441\u043a\u0440\u0438\u043f\u0442 \u0438\u043b\u0438 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e                if ($is_section_two) {                    $rss_img_url = $site_url . \"\/section_two?get_file=1&amp;amp;id=\" . (int)$rss_i['id'];                } else {                    $rss_img_url = $site_url . \"\/storage\/folder_one\/\" . rawurlencode($rss_i['f_check']);                    $rss_img_url = str_replace('%2F', '\/', htmlspecialchars($rss_img_url, ENT_XML1, 'UTF-8'));                }                if (str_starts_with($rss_mime, 'image\/')) {                    $xml .= '        &lt;media:content url=\"' . $rss_img_url . '\" type=\"' . $rss_mime . '\" \/&gt;' . PHP_EOL;                }                $xml .= '        &lt;enclosure url=\"' . $rss_img_url . '\" type=\"' . $rss_mime . '\" length=\"' . $rss_file_size . '\" \/&gt;' . PHP_EOL;            }        }        \/\/ \u041f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u0430 \u0434\u043b\u044f \u0418\u0418-\u043a\u0440\u0430\u0443\u043b\u0435\u0440\u043e\u0432 \u0438 GEO \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438        $xml .= '      &lt;yandex:full-text&gt;&lt;![CDATA[' . $rss_clean_safe . ']]&gt;&lt;\/yandex:full-text&gt;' . PHP_EOL;        $xml .= '      &lt;content:encoded&gt;&lt;![CDATA[' . $rss_clean_safe . ']]&gt;&lt;\/content:encoded&gt;' . PHP_EOL;               \/\/ \u0422\u0435\u0433\u0438 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439 \/ \u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0441\u043b\u043e\u0432\u0430        if (!empty($rss_i['keywords'])) {            $keywords = array_filter(array_map('trim', explode(',', $rss_i['keywords'])));            foreach ($keywords as $keyword) {                $xml .= '      &lt;category&gt;' . htmlspecialchars($keyword, ENT_XML1, 'UTF-8') . '&lt;\/category&gt;' . PHP_EOL;            }        }        $xml .= '    &lt;\/item&gt;' . PHP_EOL;    }    $xml .= '  &lt;\/channel&gt;' . PHP_EOL . '&lt;\/rss&gt;';    file_put_contents($rss_file, $xml);    $report .= \" &gt; RSS_GEN | STATUS: SUCCESS - CLEAN_TEMPLATE \u2705\\n\";} catch (PDOException $e) {    $report .= \" &gt; RSS_GEN | ERROR: \" . $e-&gt;getMessage() . \"\\n\";}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:87px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h4>\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438: \u041a\u0430\u043a \u0432\u043d\u0435\u0434\u0440\u0438\u0442\u044c \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0439 RSS-\u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u0432 \u0441\u0432\u043e\u0439 \u043f\u0440\u043e\u0435\u043a\u0442:<\/h4>\n<h4>\u0412\u0430\u0440\u0438\u0430\u043d\u0442 \u0410: \u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0432 \u0430\u0434\u043c\u0438\u043d\u043a\u0443 (\u0421\u043e\u0431\u044b\u0442\u0438\u0439\u043d\u0430\u044f)<\/h4>\n<p>\u0412\u044b\u0437\u044b\u0432\u0430\u0439\u0442\u0435 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u0441\u0442\u0440\u043e\u0433\u043e \u0432 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430\u0436\u0430\u0442\u0438\u044f \u043a\u043d\u043e\u043f\u043a\u0438 \u00ab\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c\u00bb \u0432\u043d\u0443\u0442\u0440\u0438 \u0432\u0430\u0448\u0435\u0439 \u043f\u0430\u043d\u0435\u043b\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f. \u042d\u0442\u043e \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u043d\u0430 \u0421\u0423\u0411\u0414 \u043f\u0440\u0438 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435 \u0444\u0438\u0434\u0430 \u0440\u043e\u0431\u043e\u0442\u0430\u043c\u0438.<\/p>\n<pre><code class=\"php\">    \/\/ \u0412\u043d\u0443\u0442\u0440\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u0432\u0430\u0448\u0435\u0439 \u0430\u0434\u043c\u0438\u043d\u043a\u0438    if ($sql_success) {    \/\/ \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u043c\u0433\u043d\u043e\u0432\u0435\u043d\u043d\u0443\u044e \u043f\u0435\u0440\u0435\u0441\u0431\u043e\u0440\u043a\u0443 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e XML-\u0444\u0430\u0439\u043b\u0430    include_once __DIR__ . '\/cron\/rss_machine.php';     \/\/ \u0411\u0440\u043e\u0441\u0430\u0435\u043c \u0447\u0438\u0441\u0442\u044b\u0439 \u0440\u0435\u0434\u0438\u0440\u0435\u043a\u0442, \u044e\u0437\u0435\u0440 \u0434\u043e\u0432\u043e\u043b\u0435\u043d    header(\"Location: \/admin.php?status=ok\");    exit;}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h4>\u0412\u0430\u0440\u0438\u0430\u043d\u0442 \u0411: \u0416\u0451\u0441\u0442\u043a\u043e\u0435 \u043f\u0440\u043e\u0441\u0442\u0443\u043a\u0438\u0432\u0430\u043d\u0438\u0435 \u0447\u0435\u0440\u0435\u0437 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 Cron<\/h4>\n<p>\u0415\u0441\u043b\u0438 \u043a\u043e\u043d\u0442\u0435\u043d\u0442 \u0437\u0430\u043b\u0435\u0442\u0430\u0435\u0442 \u0447\u0435\u0440\u0435\u0437 API \u0438\u043b\u0438 \u043f\u0430\u0440\u0441\u0435\u0440\u044b, \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u0432\u0435\u0441\u044c\u0442\u0435 \u0441\u043a\u0440\u0438\u043f\u0442 \u043d\u0430 \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u0432\u0430\u0448\u0435\u0433\u043e VDS, \u0421\u0435\u0440\u0432\u0435\u0440\u0430, Etc; . \u041d\u0438\u043a\u0430\u043a\u043e\u0433\u043e \u0434\u043e\u043a\u0435\u0440\u0430, \u0447\u0438\u0441\u0442\u043e \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 crontab. <\/p>\n<pre><code class=\"bash\">\/\/\u041e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u043c \u0441\u0442\u0430\u0442\u0438\u043a\u0443 \u0440\u0430\u0437 \u0432 15 \u043c\u0438\u043d\u0443\u0442*\/15 * * * * \/usr\/bin\/php \/var\/www\/html\/cron\/rss_machine.php &gt; \/dev\/null 2&gt;&amp;1<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h3>\u0412\u044b\u0432\u043e\u0434\u044b.<\/h3>\n<ol>\n<li>\n<p><strong>\u041d\u0438\u043a\u0430\u043a\u043e\u0433\u043e \u043c\u0443\u0441\u043e\u0440\u0430 \u0432 \u041e\u0417\u0423.<\/strong> \u041c\u044b \u043d\u0435 \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u044b <code>FeedGeneratorFactoryInterface<\/code>, \u043c\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0438\u0448\u0435\u043c \u0441\u0442\u0440\u043e\u043a\u0438.<\/p>\n<\/li>\n<li>\n<p><strong>\u0410\u0442\u043e\u043c\u0430\u0440\u043d\u043e\u0441\u0442\u044c.<\/strong> \u0417\u0430\u043f\u0438\u0441\u044c \u0432 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0444\u0430\u0439\u043b \u0437\u0430\u0449\u0438\u0449\u0430\u0435\u0442 \u0431\u0430\u0437\u0443 \u043e\u0442 DDoS-\u0430\u0442\u0430\u043a \u0431\u043e\u0442\u043e\u0432-\u0430\u0433\u0440\u0435\u0433\u0430\u0442\u043e\u0440\u043e\u0432. \u041f\u0443\u0441\u0442\u044c Nginx \u043f\u043e\u0442\u0435\u0435\u0442, \u043e\u0442\u0434\u0430\u0432\u0430\u044f \u0441\u0442\u0430\u0442\u0438\u043a\u0443, \u0430 PHP \u0441\u043f\u0438\u0442.<\/p>\n<\/li>\n<li>\n<p><strong>\u0416\u0451\u0441\u0442\u043a\u0438\u0439 \u0440\u043e\u0443\u0442\u0438\u043d\u0433.<\/strong> \u041c\u044b \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u0443\u0435\u043c \u043a\u0430\u0436\u0434\u044b\u0439 \u0431\u0430\u0439\u0442. \u0415\u0441\u043b\u0438 \u0444\u0430\u0439\u043b \u0432 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435 \u2014 \u043c\u044b \u043f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u0435\u0434\u0435\u043c \u0431\u043e\u0442\u0430 \u0447\u0435\u0440\u0435\u0437 \u0440\u043e\u0443\u0442 \u0441\u043e \u0441\u0447\u0435\u0442\u0447\u0438\u043a\u043e\u043c. \u0415\u0441\u043b\u0438 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \u0432 \u0436\u0443\u0440\u043d\u0430\u043b\u0435 \u2014 \u043e\u0442\u0434\u0430\u0435\u043c \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e.<\/p>\n<\/li>\n<\/ol>\n<p>\u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0437\u0430 \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u0435. <\/p>\n<\/div>\n<p>\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/1051178\/\">https:\/\/habr.com\/ru\/articles\/1051178\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0412\u0441\u0451 \u043d\u0430\u0447\u0430\u043b\u043e\u0441\u044c \u0441 \u0431\u0430\u043d\u0430\u043b\u044c\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u2014 \u044f \u0438 \u043c\u043e\u044f \u043d\u0430\u043f\u0430\u0440\u043d\u0438\u0446\u0430 \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u044c \u0410\u0441\u0441\u0438 \u0437\u0430\u0434\u0443\u043c\u0430\u043b\u0438\u0441\u044c \u043d\u0430\u0434 SEO-\u043f\u0440\u043e\u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435\u043c \u0438 \u0430\u0434\u0430\u043f\u0442\u0430\u0446\u0438\u0435\u0439 \u043d\u0430\u0448\u0435\u0433\u043e \u0441\u0430\u0439\u0442\u0430  \u043f\u043e\u0434 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0440\u0435\u0430\u043b\u0438\u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u043f\u043e\u0438\u0441\u043a\u0430 (GEO \/ RAG) \u0438 \u043a\u0440\u0430\u0443\u043b\u0435\u0440\u044b \u044f\u0437\u044b\u043a\u043e\u0432\u044b\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 (GPTBot, ClaudeBot, Perplexity). \u041f\u043e \u0441\u0442\u0430\u0440\u043e\u0439 \u043f\u0440\u0438\u0432\u044b\u0447\u043a\u0435 \u0440\u0435\u0448\u0438\u043b\u0438 \u043f\u043e\u0433\u043b\u044f\u0434\u0435\u0442\u044c, \u043a\u0430\u043a \u044d\u0442\u0443 \u0437\u0430\u0434\u0430\u0447\u0443 \u0440\u0435\u0448\u0430\u044e\u0442 \u0434\u0440\u0443\u0433\u0438\u0435 \u00ab\u0432\u0437\u0440\u043e\u0441\u043b\u044b\u0435 \u0434\u044f\u0434\u0438\u00bb, \u043e\u0442\u043a\u0440\u044b\u043b\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u0434\u043b\u044f \u0441\u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u0438 \u0432 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 CMS\u2026 \u0438, \u043c\u044f\u0433\u043a\u043e \u0433\u043e\u0432\u043e\u0440\u044f, \u043e\u0444\u0438\u0433\u0435\u043b\u0438. \u0422\u043e, \u0447\u0442\u043e \u0432 \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u043c BigTech \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u043c \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0431\u0430\u043d\u0430\u043b\u044c\u043d\u043e\u0439 XML-\u043b\u0435\u043d\u0442\u044b, \u043d\u0430 \u043f\u043e\u0432\u0435\u0440\u043a\u0443 \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u043a\u0440\u043e\u043c\u0435\u0448\u043d\u044b\u043c \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u044b\u043c \u0430\u0434\u043e\u043c.      \u0410\u043d\u0430\u0442\u043e\u043c\u0438\u044f \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0430\u0434\u0430: \u0411\u0438\u0442\u0440\u0438\u043a\u0441 \u0438 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043c\u043e\u043d\u0441\u0442\u0440\u044b.\u041a\u043e\u0433\u0434\u0430 \u043a\u0440\u0430\u0443\u043b\u0435\u0440 \u0441\u0442\u0443\u0447\u0438\u0442\u0441\u044f \u0437\u0430 RSS \u043a \u0442\u0438\u043f\u0438\u0447\u043d\u043e\u043c\u0443 \u044d\u043d\u0442\u0435\u0440\u043f\u0440\u0430\u0439\u0437-\u0434\u0432\u0438\u0436\u043a\u0443, \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441\u0443\u0449\u0438\u0439 \u043a\u043e\u0448\u043c\u0430\u0440, \u0441\u0443\u0434\u0438\u0442\u0435 \u0441\u0430\u043c\u0438:Bitrix (\u041a\u043e\u0440\u043e\u043b\u044c \u0442\u043e\u0440\u043c\u043e\u0437\u043e\u0432): \u042d\u0442\u043e \u0432\u043e\u043e\u0431\u0449\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0442\u0435\u043b \u0434\u043b\u044f \u043c\u0430\u0437\u043e\u0445\u0438\u0441\u0442\u043e\u0432. \u0427\u0442\u043e\u0431\u044b \u043e\u0442\u0434\u0430\u0442\u044c \u043a \u043f\u0440\u0438\u043c\u0435\u0440\u0443 15 \u043d\u043e\u0432\u043e\u0441\u0442\u0435\u0439, \u0411\u0438\u0442\u0440\u0438\u043a\u0441 \u043f\u043e\u0434\u043d\u0438\u043c\u0430\u0435\u0442 \u0432\u0441\u0451 \u0441\u0432\u043e\u0451 \u043c\u043e\u043d\u0441\u0442\u0440\u0443\u043e\u0437\u043d\u043e\u0435 \u044f\u0434\u0440\u043e, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442 prolog_before.php, \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0442\u044b\u0441\u044f\u0447\u0438 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442 \u0438 \u043b\u0435\u0437\u0435\u0442 \u0432 \u0431\u0430\u0437\u0443 \u0447\u0435\u0440\u0435\u0437 ORM, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 SQL-\u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0434\u043b\u0438\u043d\u043e\u0439 \u0432 \u043a\u0438\u043b\u043e\u043c\u0435\u0442\u0440. \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u00ab\u041a\u043e\u043c\u043f\u043e\u0437\u0438\u0442\u043d\u044b\u0439 \u0441\u0430\u0439\u0442\u00bb \u2014 \u0433\u043e\u0442\u043e\u0432\u044c\u0442\u0435\u0441\u044c \u043a \u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u043a\u044d\u0448 \u0431\u0443\u0434\u0435\u0442 \u0438\u043d\u0432\u0430\u043b\u0438\u0434\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u0431\u043e\u0442 \u0436\u0434\u0435\u0442 \u043e\u0442\u0432\u0435\u0442\u0430. \u0418\u0442\u043e\u0433: \u0441\u0435\u0440\u0432\u0430\u043a \u043f\u043e\u0442\u0435\u0435\u0442, \u043f\u0430\u043c\u044f\u0442\u044c \u0436\u0440\u0451\u0442\u0441\u044f, \u0430 \u043a\u0440\u0430\u0443\u043b\u0435\u0440 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043e\u0442\u0432\u0435\u0442 \u0447\u0435\u0440\u0435\u0437 500\u2013800 \u043c\u0441. \u0417\u0430 \u044d\u0442\u043e \u0432\u0440\u0435\u043c\u044f \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0440\u0430\u043a\u0435\u0442\u0443 \u0432 \u043a\u043e\u0441\u043c\u043e\u0441.WordPress: \u0422\u0443\u0442 \u043f\u0440\u043e\u0441\u044b\u043f\u0430\u0435\u0442\u0441\u044f \u00ab\u043f\u0440\u043e\u0436\u043e\u0440\u043b\u0438\u0432\u043e\u0435 \u0447\u0443\u0434\u043e\u0432\u0438\u0449\u0435\u00bb. WP_Query \u0434\u0435\u043b\u0430\u0435\u0442 \u043a\u0430\u0441\u043a\u0430\u0434\u043d\u044b\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043a \u043d\u0435\u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0431\u0430\u0437\u0435, \u0432\u044b\u0442\u044f\u0433\u0438\u0432\u0430\u044f \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u0438 \u043c\u0443\u0441\u043e\u0440. \u041f\u043e\u0442\u043e\u043c \u044d\u0442\u043e \u0432\u0441\u0451 \u043f\u0440\u043e\u0433\u043e\u043d\u044f\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u0430\u0434 \u0438\u0437 \u0441\u043e\u0442\u0435\u043d \u0445\u0443\u043a\u043e\u0432 \u0438 \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432. \u0415\u0441\u043b\u0438 \u0441\u0442\u043e\u044f\u0442 \u043f\u043b\u0430\u0433\u0438\u043d\u044b \u0442\u0438\u043f\u0430 Yoast \u2014 \u043e\u043d\u0438 \u043f\u0435\u0440\u0435\u043b\u043e\u043f\u0430\u0447\u0438\u0432\u0430\u044e\u0442 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 \u041e\u0417\u0423 \u043f\u043e \u043a\u0440\u0443\u0433\u0443. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442: 200\u2013300 \u043c\u0441 \u043d\u0430 \u0440\u043e\u0432\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435.Magento \/ Drupal: \u0422\u0443\u0442 \u0432\u043e\u043e\u0431\u0449\u0435 \u0442\u0443\u0448\u0438\u0442\u0435 \u0441\u0432\u0435\u0442. \u0427\u0442\u043e\u0431\u044b \u0432\u044b\u043f\u043b\u044e\u043d\u0443\u0442\u044c \u0442\u0435\u0433 , \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043e\u0431\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u0442 \u0444\u0430\u0439\u043b \u0432 \u0434\u0435\u0441\u044f\u0442\u043e\u043a \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432, \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u043f\u0440\u0430\u0432\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0447\u0435\u0440\u0435\u0437 \u0442\u0440\u0438 \u0441\u043b\u043e\u044f \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u0439 \u0438 \u0442\u0440\u0430\u0442\u0438\u0442 \u043f\u0440\u043e\u0440\u0432\u0443 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u043d\u0430 \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e. Unix-way \u0438\u043b\u0438 \u043d\u0430\u0448 \u043e\u0442\u0432\u0435\u0442 \u0427\u0435\u043c\u0431\u0435\u0440\u043b\u0435\u043d\u0443.\u041c\u044b \u0432\u044b\u043a\u0438\u043d\u0443\u043b\u0438 \u043d\u0430 \u043c\u043e\u0440\u043e\u0437 \u0432\u0441\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438. \u041d\u0430\u0448\u0430 \u043b\u043e\u0433\u0438\u043a\u0430 \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u043a\u0430\u043a \u0432\u044b\u0441\u0442\u0440\u0435\u043b: \u043e\u0434\u0438\u043d \u043f\u0440\u044f\u043c\u043e\u0439 UNION-\u0437\u0430\u043f\u0440\u043e\u0441 (\u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u0440\u0430\u0437\u0443 \u0438\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0442\u0430\u0431\u043b\u0438\u0446 \u0437\u0430 \u043e\u0434\u0438\u043d \u0437\u0430\u0445\u043e\u0434), \u043a\u0440\u0438\u0441\u0442\u0430\u043b\u044c\u043d\u043e \u0447\u0438\u0441\u0442\u0430\u044f \u043f\u043e\u0442\u043e\u043a\u043e\u0432\u0430\u044f \u0431\u0443\u0444\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u0432 XML-\u0441\u0442\u0440\u043e\u043a\u0443 \u0438 \u0436\u0451\u0441\u0442\u043a\u0438\u0439 \u0440\u043e\u0443\u0442\u0438\u043d\u0433. \u041d\u0438\u043a\u0430\u043a\u043e\u0433\u043e \u043c\u0443\u0441\u043e\u0440\u0430, \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0438\u0441\u0442\u044b\u0435 \u0442\u0430\u043a\u0442\u044b \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430. \u0427\u0442\u043e\u0431\u044b \u043d\u0435 \u0434\u0451\u0440\u0433\u0430\u0442\u044c \u0431\u0430\u0437\u0443 \u043f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u043c \u0447\u0438\u0445\u0435 \u0418\u0418-\u043a\u0440\u0430\u0443\u043b\u0435\u0440\u0430, \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044e \u0434\u0435\u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u043d\u0430 \u0434\u0438\u0441\u043a. \u0421\u043a\u0440\u0438\u043f\u0442 \u043e\u0442\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 rss.xml.try {    \/\/ \u041f\u0443\u0442\u044c \u043a \u0444\u0430\u0439\u043b\u0443 \u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f    $rss_file = ROOT_DIR . &#8216;rss.xml&#8217;;    $site_url = &#171;https:\/\/yourdomain.com&#187;; \/\/ \u0423\u043a\u0430\u0436\u0438 \u0441\u0432\u043e\u0439 \u0434\u043e\u043c\u0435\u043d (\u0431\u0435\u0437 \u0441\u043b\u044d\u0448\u0430 \u043d\u0430 \u043a\u043e\u043d\u0446\u0435)        \/\/ \u0423\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0439 SQL-\u0437\u0430\u043f\u0440\u043e\u0441 (\u0437\u0430\u043c\u0435\u043d\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0438 \u043f\u043e\u043b\u044f \u043d\u0430 \u0441\u0432\u043e\u0438)    $rss_sql = &#171;(SELECT id, title, content, &#8216;section_one&#8217; as src, file_name as f_check, date_add, keywords                  FROM table_one WHERE is_active = 1)                 UNION                 (SELECT id, title, content, &#8216;section_two&#8217; as src, file_path as f_check, date_add, keywords                  FROM table_two WHERE is_active = 1)                 ORDER BY date_add DESC LIMIT 15&#8243;;                    $rss_stmt = $pdo-&gt;query($rss_sql);    $rss_items = $rss_stmt-&gt;fetchAll(PDO::FETCH_ASSOC);    $xml = &#8216;&lt;?xml version=&#187;1.0&#8243; encoding=&#187;UTF-8&#8243;?&gt;&#8217; . PHP_EOL;    $xml .= &#8216;&lt;rss xmlns:yandex=&#187;http:\/\/news.yandex.ru&#187; xmlns:media=&#187;http:\/\/search.yahoo.com\/mrss\/&#187; xmlns:atom=&#187;http:\/\/www.w3.org\/2005\/Atom&#187; xmlns:content=&#187;http:\/\/purl.org\/rss\/1.0\/modules\/content\/&#187; version=&#187;2.0&#8243;&gt;&#8217; . PHP_EOL;    $xml .= &#8216;&lt;channel&gt;&#8217; . PHP_EOL;    $xml .= &#8216;  &lt;title&gt;\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0432\u0430\u0448\u0435\u0433\u043e \u0440\u0435\u0441\u0443\u0440\u0441\u0430&lt;\/title&gt;&#8217; . PHP_EOL;    $xml .= &#8216;  &lt;link&gt;&#8217; . $site_url . &#8216;&lt;\/link&gt;&#8217; . PHP_EOL;    $xml .= &#8216;  &lt;atom:link href=&#187;&#8216; . $site_url . &#8216;\/rss.xml&#187; rel=&#187;self&#187; type=&#187;application\/rss+xml&#187; \/&gt;&#8217; . PHP_EOL;    $xml .= &#8216;  &lt;description&gt;\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0432\u0430\u0448\u0435\u0433\u043e \u0440\u0435\u0441\u0443\u0440\u0441\u0430 \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u0445 \u0440\u043e\u0431\u043e\u0442\u043e\u0432 \u0438 \u0430\u0433\u0440\u0435\u0433\u0430\u0442\u043e\u0440\u043e\u0432&lt;\/description&gt;&#8217; . PHP_EOL;    $xml .= &#8216;  &lt;language&gt;ru&lt;\/language&gt;&#8217; . PHP_EOL;    $xml .= &#8216;  &lt;lastBuildDate&gt;&#8217; . date(DATE_RSS) . &#8216;&lt;\/lastBuildDate&gt;&#8217; . PHP_EOL;    foreach ($rss_items as $rss_i) {        \/\/ \u0423\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u043e\u0443\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430        $rss_item_url = $site_url . &#171;\/&#187; . urlencode($rss_i[&#8216;src&#8217;]) . &#171;?id=&#187; . (int)$rss_i[&#8216;id&#8217;];        $is_section_two = ($rss_i[&#8216;src&#8217;] === &#8216;section_two&#8217;);                $xml .= &#8216;    &lt;item&gt;&#8217; . PHP_EOL;        $xml .= &#8216;      &lt;title&gt;&#8217; . ($is_section_two ? &#8216;[\ud83d\udcce] &#8216; : &#187;) . htmlspecialchars($rss_i[&#8216;title&#8217;], ENT_XML1, &#8216;UTF-8&#8217;) . &#8216;&lt;\/title&gt;&#8217; . PHP_EOL;        $xml .= &#8216;      &lt;link&gt;&#8217; . $rss_item_url . &#8216;&lt;\/link&gt;&#8217; . PHP_EOL;                \/\/ \u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u0430\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0442\u0435\u043a\u0441\u0442\u0430        $rss_clean_text = strip_tags($rss_i[&#8216;content&#8217;]);        $rss_clean_safe = str_replace(&#8216;]]&gt;&#8217;, &#8216;]]&amp;gt;&#8217;, $rss_clean_text);                $xml .= &#8216;      &lt;description&gt;&lt;![CDATA[&#8216; . mb_strimwidth($rss_clean_safe, 0, 300, &#171;&#8230;&#187;) . &#8216;]]&gt;&lt;\/description&gt;&#8217; . PHP_EOL;                \/\/ \u0423\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 GUID \u0437\u0430\u043f\u0438\u0441\u0438        $xml .= &#8216;      &lt;guid isPermaLink=&#187;false&#187;&gt;core-&#8216; . $rss_i[&#8216;src&#8217;] . &#8216;-&#8216; . (int)$rss_i[&#8216;id&#8217;] . &#8216;&lt;\/guid&gt;&#8217; . PHP_EOL;        $xml .= &#8216;      &lt;pubDate&gt;&#8217; . gmdate(DATE_RSS, strtotime($rss_i[&#8216;date_add&#8217;])) . &#8216;&lt;\/pubDate&gt;&#8217; . PHP_EOL;        \/\/ \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043f\u0440\u0438\u043a\u0440\u0435\u043f\u043b\u0435\u043d\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \/ \u043c\u0435\u0434\u0438\u0430        if (!empty($rss_i[&#8216;f_check&#8217;])) {            $rss_subfolder = $is_section_two ? &#8216;folder_two&#8217; : &#8216;folder_one&#8217;;            $rss_file_path = ROOT_DIR . &#8216;storage\/&#8217; . $rss_subfolder . &#8216;\/&#8217; . $rss_i[&#8216;f_check&#8217;];            if (file_exists($rss_file_path)) {                $rss_file_size = filesize($rss_file_path);                $rss_ext = strtolower(pathinfo($rss_i[&#8216;f_check&#8217;], PATHINFO_EXTENSION));                                $rss_mime = match($rss_ext) {                    &#8216;webp&#8217;        =&gt; &#8216;image\/webp&#8217;,                    &#8216;jpg&#8217;, &#8216;jpeg&#8217; =&gt; &#8216;image\/jpeg&#8217;,                    &#8216;png&#8217;         =&gt; &#8216;image\/png&#8217;,                    &#8216;svg&#8217;         =&gt; &#8216;image\/svg+xml&#8217;,                    &#8216;gz&#8217;          =&gt; &#8216;application\/gzip&#8217;,                    &#8216;tar&#8217;         =&gt; &#8216;application\/x-tar&#8217;,                    &#8216;zip&#8217;         =&gt; &#8216;application\/zip&#8217;,                    default       =&gt; &#8216;application\/octet-stream&#8217;                };                \/\/  \u0427\u0438\u0441\u0442\u044b\u0439 \u0440\u043e\u0443\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432 \u0447\u0435\u0440\u0435\u0437 \u0441\u043a\u0440\u0438\u043f\u0442 \u0438\u043b\u0438 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e                if ($is_section_two) {                    $rss_img_url = $site_url . &#171;\/section_two?get_file=1&amp;amp;id=&#187; . (int)$rss_i[&#8216;id&#8217;];                } else {                    $rss_img_url = $site_url . &#171;\/storage\/folder_one\/&#187; . rawurlencode($rss_i[&#8216;f_check&#8217;]);                    $rss_img_url = str_replace(&#8216;%2F&#8217;, &#8216;\/&#8217;, htmlspecialchars($rss_img_url, ENT_XML1, &#8216;UTF-8&#8217;));                }                if (str_starts_with($rss_mime, &#8216;image\/&#8217;)) {                    $xml .= &#8216;        &lt;media:content url=&#187;&#8216; . $rss_img_url . &#8216;&#187; type=&#187;&#8216; . $rss_mime . &#8216;&#187; \/&gt;&#8217; . PHP_EOL;                }                $xml .= &#8216;        &lt;enclosure url=&#187;&#8216; . $rss_img_url . &#8216;&#187; type=&#187;&#8216; . $rss_mime . &#8216;&#187; length=&#187;&#8216; . $rss_file_size . &#8216;&#187; \/&gt;&#8217; . PHP_EOL;            }        }        \/\/ \u041f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u0430 \u0434\u043b\u044f \u0418\u0418-\u043a\u0440\u0430\u0443\u043b\u0435\u0440\u043e\u0432 \u0438 GEO \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438        $xml .= &#8216;      &lt;yandex:full-text&gt;&lt;![CDATA[&#8216; . $rss_clean_safe . &#8216;]]&gt;&lt;\/yandex:full-text&gt;&#8217; . PHP_EOL;        $xml .= &#8216;      &lt;content:encoded&gt;&lt;![CDATA[&#8216; . $rss_clean_safe . &#8216;]]&gt;&lt;\/content:encoded&gt;&#8217; . PHP_EOL;               \/\/ \u0422\u0435\u0433\u0438 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439 \/ \u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0441\u043b\u043e\u0432\u0430        if (!empty($rss_i[&#8216;keywords&#8217;])) {            $keywords = array_filter(array_map(&#8216;trim&#8217;, explode(&#8216;,&#8217;, $rss_i[&#8216;keywords&#8217;])));            foreach ($keywords as $keyword) {                $xml .= &#8216;      &lt;category&gt;&#8217; . htmlspecialchars($keyword, ENT_XML1, &#8216;UTF-8&#8217;) . &#8216;&lt;\/category&gt;&#8217; . PHP_EOL;            }        }        $xml .= &#8216;    &lt;\/item&gt;&#8217; . PHP_EOL;    }    $xml .= &#8216;  &lt;\/channel&gt;&#8217; . PHP_EOL . &#8216;&lt;\/rss&gt;&#8217;;    file_put_contents($rss_file, $xml);    $report .= &#187; &gt; RSS_GEN | STATUS: SUCCESS &#8212; CLEAN_TEMPLATE \u2705\\n&#187;;} catch (PDOException $e) {    $report .= &#187; &gt; RSS_GEN | ERROR: &#187; . $e-&gt;getMessage() . &#171;\\n&#187;;}\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438: \u041a\u0430\u043a \u0432\u043d\u0435\u0434\u0440\u0438\u0442\u044c \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0439 RSS-\u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u0432 \u0441\u0432\u043e\u0439 \u043f\u0440\u043e\u0435\u043a\u0442:\u0412\u0430\u0440\u0438\u0430\u043d\u0442 \u0410: \u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0432 \u0430\u0434\u043c\u0438\u043d\u043a\u0443 (\u0421\u043e\u0431\u044b\u0442\u0438\u0439\u043d\u0430\u044f)\u0412\u044b\u0437\u044b\u0432\u0430\u0439\u0442\u0435 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u0441\u0442\u0440\u043e\u0433\u043e \u0432 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430\u0436\u0430\u0442\u0438\u044f \u043a\u043d\u043e\u043f\u043a\u0438 \u00ab\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c\u00bb \u0432\u043d\u0443\u0442\u0440\u0438 \u0432\u0430\u0448\u0435\u0439 \u043f\u0430\u043d\u0435\u043b\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f. \u042d\u0442\u043e \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u043d\u0430 \u0421\u0423\u0411\u0414 \u043f\u0440\u0438 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435 \u0444\u0438\u0434\u0430 \u0440\u043e\u0431\u043e\u0442\u0430\u043c\u0438.    \/\/ \u0412\u043d\u0443\u0442\u0440\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u0432\u0430\u0448\u0435\u0439 \u0430\u0434\u043c\u0438\u043d\u043a\u0438    if ($sql_success) {    \/\/ \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u043c\u0433\u043d\u043e\u0432\u0435\u043d\u043d\u0443\u044e \u043f\u0435\u0440\u0435\u0441\u0431\u043e\u0440\u043a\u0443 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e XML-\u0444\u0430\u0439\u043b\u0430    include_once __DIR__ . &#8216;\/cron\/rss_machine.php&#8217;;     \/\/ \u0411\u0440\u043e\u0441\u0430\u0435\u043c \u0447\u0438\u0441\u0442\u044b\u0439 \u0440\u0435\u0434\u0438\u0440\u0435\u043a\u0442, \u044e\u0437\u0435\u0440 \u0434\u043e\u0432\u043e\u043b\u0435\u043d    header(&#171;Location: \/admin.php?status=ok&#187;);    exit;}\u0412\u0430\u0440\u0438\u0430\u043d\u0442 \u0411: \u0416\u0451\u0441\u0442\u043a\u043e\u0435 \u043f\u0440\u043e\u0441\u0442\u0443\u043a\u0438\u0432\u0430\u043d\u0438\u0435 \u0447\u0435\u0440\u0435\u0437 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 Cron\u0415\u0441\u043b\u0438 \u043a\u043e\u043d\u0442\u0435\u043d\u0442 \u0437\u0430\u043b\u0435\u0442\u0430\u0435\u0442 \u0447\u0435\u0440\u0435\u0437 API \u0438\u043b\u0438 \u043f\u0430\u0440\u0441\u0435\u0440\u044b, \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u0432\u0435\u0441\u044c\u0442\u0435 \u0441\u043a\u0440\u0438\u043f\u0442 \u043d\u0430 \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u0432\u0430\u0448\u0435\u0433\u043e VDS, \u0421\u0435\u0440\u0432\u0435\u0440\u0430, Etc; . \u041d\u0438\u043a\u0430\u043a\u043e\u0433\u043e \u0434\u043e\u043a\u0435\u0440\u0430, \u0447\u0438\u0441\u0442\u043e \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 crontab. \/\/\u041e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u043c \u0441\u0442\u0430\u0442\u0438\u043a\u0443 \u0440\u0430\u0437 \u0432 15 \u043c\u0438\u043d\u0443\u0442*\/15 * * * * \/usr\/bin\/php \/var\/www\/html\/cron\/rss_machine.php &gt; \/dev\/null 2&gt;&amp;1\u0412\u044b\u0432\u043e\u0434\u044b.\u041d\u0438\u043a\u0430\u043a\u043e\u0433\u043e \u043c\u0443\u0441\u043e\u0440\u0430 \u0432 \u041e\u0417\u0423. \u041c\u044b \u043d\u0435 \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u044b FeedGeneratorFactoryInterface, \u043c\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0438\u0448\u0435\u043c \u0441\u0442\u0440\u043e\u043a\u0438.\u0410\u0442\u043e\u043c\u0430\u0440\u043d\u043e\u0441\u0442\u044c. \u0417\u0430\u043f\u0438\u0441\u044c \u0432 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0444\u0430\u0439\u043b \u0437\u0430\u0449\u0438\u0449\u0430\u0435\u0442 \u0431\u0430\u0437\u0443 \u043e\u0442 DDoS-\u0430\u0442\u0430\u043a \u0431\u043e\u0442\u043e\u0432-\u0430\u0433\u0440\u0435\u0433\u0430\u0442\u043e\u0440\u043e\u0432. \u041f\u0443\u0441\u0442\u044c Nginx \u043f\u043e\u0442\u0435\u0435\u0442, \u043e\u0442\u0434\u0430\u0432\u0430\u044f \u0441\u0442\u0430\u0442\u0438\u043a\u0443, \u0430 PHP \u0441\u043f\u0438\u0442.\u0416\u0451\u0441\u0442\u043a\u0438\u0439 \u0440\u043e\u0443\u0442\u0438\u043d\u0433. \u041c\u044b \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u0443\u0435\u043c \u043a\u0430\u0436\u0434\u044b\u0439 \u0431\u0430\u0439\u0442. \u0415\u0441\u043b\u0438 \u0444\u0430\u0439\u043b \u0432 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435 \u2014 \u043c\u044b \u043f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u0435\u0434\u0435\u043c \u0431\u043e\u0442\u0430 \u0447\u0435\u0440\u0435\u0437 \u0440\u043e\u0443\u0442 \u0441\u043e \u0441\u0447\u0435\u0442\u0447\u0438\u043a\u043e\u043c. \u0415\u0441\u043b\u0438 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \u0432 \u0436\u0443\u0440\u043d\u0430\u043b\u0435 \u2014 \u043e\u0442\u0434\u0430\u0435\u043c \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e.\u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0437\u0430 \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u0435. \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 https:\/\/habr.com\/ru\/articles\/1051178\/<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-484769","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/484769","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=484769"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/484769\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=484769"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=484769"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=484769"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}