Frage

Ich versuche, Daten aus einem RSS -Feed mit 25 Elementen zu lesen. Wenn ich die RSS -Datei über HTTP anfordere, heißt es, dass es nur 20 Elemente gibt.

function test($location)
{
    $doc = new DomDocument();
    $doc->load($location);
    $items = $doc->getElementsByTagName('item');
    return $items->length;
}

// Prints 20
echo test('http://www.reddit.com/r/programming/new/.rss?after=t3_');

// Prints 25
echo test('programming.xml');

Ich habe RSS -Feeds auch von anderen Subreddits mit demselben Ergebnis ausprobiert.

War es hilfreich?

Lösung

Ich sehe, was das Problem jetzt ist ... wenn Sie einen Sub-Reddit-mögen, wie /r/Programmierung/ und gehen Sie auf die Registerkarte "Neue", um die neuesten Einsendungen zu sehen. Es gibt zwei Sortieroptionen. Die erste Option ist "steigend", die nur aufstrebende Einträge zeigt, die alternative Sortierreihenfolge ist "neu".

Da ich die "neue" Sortierreihenfolge in meinem Browser gewählt habe, hat es einen Keks gespeichert und danach als Standard -Sortierreihenfolge verwendet. Der Zugriff auf die Seite über Code verwendete jedoch weiterhin die Standard -Sortierreihenfolge, die eine variable Menge an Ergebnissen zurückgab.

Ich habe das Problem behoben, indem ich die Sortierabfrage -Abfrage -Zeichenfolge an die Anforderungs -URL angemeldet habe: http://www.reddit.com/r/programming/new/.rss?sort=new

Andere Tipps

Wenn es Probleme hatte, den Feed zu laden, würde es wahrscheinlich eine Art Warnung ausgeben.

Im Moment zeigt Ihr Beispielcode für den Reddit -Feed, dass er 14 Elemente enthält. Die Anzahl der Elemente in diesem Feed ist nicht konstant. Das Problem ist also, dass Ihre lokale Kopie anders ist als die, die Sie von Reddit geladen haben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top