문제

25개 항목이 있는 RSS 피드에서 데이터를 읽으려고 합니다.HTTP를 통해 RSS 파일을 요청하면 항목이 20개만 있다고 나옵니다.

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');

다른 하위 레딧의 RSS 피드도 시도해 보았으나 동일한 결과가 나왔습니다.

도움이 되었습니까?

해결책

이제 문제가 무엇인지 알겠습니다.다음과 같은 하위 레딧을 방문하면 /r/프로그래밍/ 최신 제출물을 보려면 "새" 탭으로 이동하세요. 두 가지 정렬 옵션이 있습니다.첫 번째 옵션은 최신 항목만 표시하는 "상승"이며 대체 정렬 순서는 "새"입니다.

내 브라우저에서 "새" 정렬 순서를 선택했기 때문에 쿠키가 저장되었고 나중에 기본 정렬 순서로 사용되었습니다.그러나 코드를 통해 페이지에 액세스하면 여전히 기본 정렬 순서가 사용되어 다양한 결과가 반환되었습니다.

요청 URL에 정렬 순서 쿼리 문자열을 추가하여 문제를 해결했습니다. http://www.reddit.com/r/programming/new/.rss?sort=new

다른 팁

피드를로드하는 데 문제가 있다면 아마도 어떤 종류의 경고를 발행 할 것입니다.

현재 Reddit 피드의 샘플 코드는 14 개의 항목이 있음을 보여줍니다. 해당 피드의 항목 수는 일정하지 않습니다. 따라서 문제는 로컬 사본이 Reddit에서로드 한 것과 다르다는 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top