В настоящее время я создаю новый онлайн-ридер чтения на PHP. Одной из возможностей, над которыми я работаю, является автоматическое обнаружение фида. Если пользователь вводит URL-адрес веб-сайта, скрипт обнаруживает, что он не является фидом и ищет настоящий URL-адрес канала, анализируя HTML для правильного тега.Как определить, является ли страница RSS или фида ATOM
Проблема заключается в том, как в настоящее время обнаруживается, что 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
Да, они должны иметь эти идентификаторы тегов. Но есть так много плохо сформированных кормов и разных версий, я не могу полагаться на это. Поиск тега или
интересен. Я проверю это. – Pepper@Pepper да, возможно, скомпилировать списки тегов, чтобы нюхать? 'html' и' body' для HTML, 'rdf' и' item' (IIRC) для RSS, 'feed' для Atom .... –