В настоящее время я создаю новый онлайн-ридер на 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?
Спасибо
Pepper
http://feedingo.com