Как определить, является ли страница каналом RSS или ATOM

В настоящее время я создаю новый онлайн-ридер на PHP. Одной из функций, над которыми я работаю, является автоматическое обнаружение каналов. Если пользователь вводит URL-адрес веб-сайта, сценарий обнаружит, что он не является фидом, и будет искать реальный URL-адрес фида, анализируя HTML-код для правильного тега.

Проблема в том, что в настоящее время я обнаруживаю, является ли URL фидом или веб-сайтом, работает только часть времени, и я знаю, что это не может быть лучшим решением. Прямо сейчас я беру ответ CURL и запускаю его через simplexml_load_string, если он не может разобрать его, я рассматриваю его как веб-сайт. Вот код

$xml = @simplexml_load_string( $site_found['content'] );

if( !$xml ) // this is a website, not a feed
{
    // handle website
}
else
{
    // parse feed
}

Очевидно, это не идеально. Кроме того, когда он сталкивается с HTML-сайтом, который он может проанализировать, он считает его фидом.

Какие-нибудь предложения по хорошему способу обнаружения разницы между фидом или фидом в PHP?

Спасибо,

Перецhttp://feedingo.com

Ответы на вопрос(4)

Ваш ответ на вопрос