PHP is_rss ($ url)? - PullRequest
       29

PHP is_rss ($ url)?

1 голос
/ 20 января 2012

Есть ли способ через PHP, где я могу либо с URL-адресом, или $string=file_get_contents($url), где я могу узнать, является ли данный URL-адрес RSS-фидом?

Я также хотел бы иметь возможность обрабатывать FeedBurner фиды в качестве потенциального типа фида ...

Я пытаюсь автоматизировать обнаружение этих каналов - (я не знаю, существует ли этот тип вещей - пример ссылки будет чрезвычайно полезен :) на основе стандартов WordPress и Blogger.

Ответы [ 2 ]

4 голосов
/ 20 января 2012

Вы можете использовать превосходную библиотеку SimplePie , которая (обрабатывает rss, atom, Feedburner) для серьезного решения задачи:

// load the simplepie class
require 'simplepie.php';
$feed = new simpepie;

$feed->set_feed_url('your url here');

$feed->enable_cache(true);
$feed->set_cache_location('cache');
$feed->set_cache_duration(1800);

$feed->init();

//let simplepie handle the content type (atom, RSS...)
$feed->handle_content_type();

if ($feed->error)
{
   // not a valid rss feed / url
   echo '<div class="box error">' . $feed->error . '</div>';
}
else
{
  // proceed
}
1 голос
/ 20 января 2012

Баскетбол ненадежный тест:

$string = file_get_contents($url);
if (strpos($string, '<rss') !== FALSE)) {
   ... yes, it's probably rss
}

Более сложной версией было бы загрузить строку XML (при условии, что она выглядит как xml) в валидатор XML и посмотреть, соответствует ли она DTD RSS. Больше работы, но и гораздо надежнее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...