В чем разница между ссылками RSS? - PullRequest
0 голосов
/ 24 мая 2011

PHP, чтение RSS-каналов. Мои коды работают нормально, но НЕ для всех ссылок RSS, например:

Ошибка при создании ссылок

Сообщения об ошибках

  • Parse error: syntax error, unexpected T_VARIABLE ...
  • Warning: DOMDocument::load() [domdocument.load]: Opening and ending tag mismatch ...

Эти (указанные выше) ссылки RSS являются проблемой с различными типами кодов, которые я нашел.
И люди, которые говорят мне, что эти ссылки не имеют «действительного» формата.
Но SimplePie хорошо читает эти ссылки .

  • Почему?
  • SimplePie может читать эти ссылки .. а НЕ Я?

Я хочу, чтобы мои коды хорошо работали на всех каналах, таких как SimplePie ..; (
... ...

Вот краткий пример кода класса, который я использую:

class RSSREADER {
private $xml;
private $items;
private $item;

public static function _ParseFeeds ($link)
{
    $self->xml = @simplexml_load_file($link);
    echo $self->xml->channel->title.'<br />';
    echo $self->xml->channel->description.'<br /><br />';

    $self->items = $self->xml->channel->item;
    foreach ($self->items as $self->item) {
        echo $self->item->title.'<br />';
        echo $self->item->description.'<br />';
    }
}
}

1 Ответ

2 голосов
/ 24 мая 2011

Множество RSS-каналов фактически недействительны; SimplePie и другие парсеры часто делают все возможное, чтобы обойти эти ужасные реализации, поэтому проще использовать эти библиотеки, чем писать свои собственные. Мы используем SimplePie, и существует множество каналов, которые настолько ужасны, что даже SimplePie дает сбой.

Короче говоря; если вы не любите боль и / или не испытываете ужасного влечения к вождению, чтобы написать свое, используйте другую библиотеку. Как вы заметили, попытка разобрать их как чистый XML будет очень часто заканчиваться неудачей.

...