Собираем понятный Docker Compose для разработки и будущего деплоя PHP-сайта.

Зачем это нужно

RSS-парсер полезен для новостных сайтов, мониторинга источников и подготовки черновиков материалов. Важно сохранять сырые данные, дату публикации, ссылку на источник и хэш контента.

Базовый код

parser.php
function fetchFeed($url) {
    $body = file_get_contents($url);
    if ($body === false) {
        return array();
    }

    $xml = simplexml_load_string($body);
    if (!$xml || !isset($xml->channel->item)) {
        return array();
    }

    $items = array();
    foreach ($xml->channel->item as $item) {
        $items[] = array(
            'title' => (string) $item->title,
            'url' => (string) $item->link,
        );
    }

    return $items;
}

Ошибки перед продакшном

Важно: не используйте HTML источника на публичной странице без экранирования. Сохраняйте сырье отдельно, а публикацию делайте через редактора.
  • Добавить timeout HTTP-запроса.
  • Считать content_hash для антидублей.
  • Логировать ошибки источника.
  • Не запускать два импорта одновременно.

Частые вопросы

Нужно проверять правила источника, robots.txt и авторские права. Для налоговых новостей лучше использовать официальные источники и ссылаться на первоисточник.

Лучше нет. Сохраняйте сырье и отдавайте редактору на проверку.