RSS 갯수를 정하고 싶습니다. 채택완료
요즘 RSS 때문에 계속 헤매고있네요~~~
아래는 https://m.blog.naver.com/PostList.naver?blogId=talag" onclick="nclk(this, 'pst.writer', '', '');">GamZehYaavor 님 블로그에서 퍼왔는데 RSS 나오는 갯수가 정할 수가 없어 문의드립니다.
----------------------------------------------------------------------------------
</p>
<p><?php
include 'dbinfo.inc';</p>
<p>
$items = array();
$i = 0;
$xmlReader = new XMLReader();</p>
<p>$xmlReader->open("<a _foo="con_link" href="<a href="http://api.flickr.com/services/feeds/photos_public.gne?id=44604249@N06&lang=ko-kr&format=rss_200" target="_blank" rel="noopener noreferrer">http://api.flickr.com/services/feeds/photos_public.gne?id=44604249@N06&lang=ko-kr&format=rss_200</a>" target="_blank">rss주소</a>", null, LIBXML_NOBLANKS);</p>
<p>$isParserActive = false;</p>
<p><font color="#ff0000"><strong>$simpleNodeTypes = array("pubDate", "media:description", "media:title");</strong></font></p>
<p>while ($xmlReader->read()) {
$nodeType = $xmlReader->nodeType;
if ($nodeType != XMLReader::ELEMENT && $nodeType != XMLReader::END_ELEMENT) {
continue;
}
else if ($xmlReader->name == "item")
{
if (($nodeType == XMLReader::END_ELEMENT) && $isParserActive){
$i++;
}
$isParserActive = ($nodeType != XMLReader::END_ELEMENT);
}
if (!$isParserActive || $nodeType == XMLReader::END_ELEMENT){
continue;
}
$name = $xmlReader->name;
if (in_array ($name, $simpleNodeTypes))
{ // Skip to the text node
$xmlReader->read ();
$value = $xmlReader->value;
$items[$i][$name] = $value;
} <font color="#3a32c3">else if ($name == "media:thumbnail") {</font>
<font color="#3a32c3"> $items[$i]['thumbnail_url'] = $xmlReader->getAttribute("url");
} else if ($name == "media:content") {
$items[$i]['content_url'] = $xmlReader->getAttribute("url");
$items[$i]['type'] = $xmlReader->getAttribute("type");
} else if ($name == "media:category") {
$xmlReader->read ();
$items[$i]['tag'] = $xmlReader->value;
}</font>
} </p>
<p>
?></p>
<p>
댓글을 작성하려면 로그인이 필요합니다.
답변 1개
채택된 답변
+20 포인트
4년 전
</p>
<p><?php
include 'dbinfo.inc';</p>
<p>$items = array();
$i = 0;
$limit = 10; // ★ 제한
$xmlReader = new XMLReader();
$xmlReader->open("rss주소", null, LIBXML_NOBLANKS);
$isParserActive = false;
$simpleNodeTypes = array("pubDate", "media:description", "media:title");
while ($xmlReader->read()) {
if ( $i>=$limit ) break; // ★ 제한 벗어남
$nodeType = $xmlReader->nodeType;
if ($nodeType != XMLReader::ELEMENT && $nodeType != XMLReader::END_ELEMENT) {
continue;
}
else if ($xmlReader->name == "item")
{
if (($nodeType == XMLReader::END_ELEMENT) && $isParserActive){
$i++;
}
$isParserActive = ($nodeType != XMLReader::END_ELEMENT);
}
if (!$isParserActive || $nodeType == XMLReader::END_ELEMENT){
continue;
}
$name = $xmlReader->name;
if (in_array ($name, $simpleNodeTypes))
{ // Skip to the text node
$xmlReader->read ();
$value = $xmlReader->value;
$items[$i][$name] = $value;
} else if ($name == "media:thumbnail") {
$items[$i]['thumbnail_url'] = $xmlReader->getAttribute("url");
} else if ($name == "media:content") {
$items[$i]['content_url'] = $xmlReader->getAttribute("url");
$items[$i]['type'] = $xmlReader->getAttribute("type");
} else if ($name == "media:category") {
$xmlReader->read ();
$items[$i]['tag'] = $xmlReader->value;
}
}</p>
<p>
반복문 끝나고 한 줄 추가해서 원하는 크기만큼 구하는 방법도 있습니다.
다만, 위의 조건 만족 시 반복문을 벗어나는 방법보다 효율이 떨어집니다.
</p>
<p><?php
include 'dbinfo.inc';</p>
<p>$items = array();
$i = 0;
$xmlReader = new XMLReader();
$xmlReader->open("rss주소", null, LIBXML_NOBLANKS);
$isParserActive = false;
$simpleNodeTypes = array("pubDate", "media:description", "media:title");
while ($xmlReader->read()) {
$nodeType = $xmlReader->nodeType;
if ($nodeType != XMLReader::ELEMENT && $nodeType != XMLReader::END_ELEMENT) {
continue;
}
else if ($xmlReader->name == "item")
{
if (($nodeType == XMLReader::END_ELEMENT) && $isParserActive){
$i++;
}
$isParserActive = ($nodeType != XMLReader::END_ELEMENT);
}
if (!$isParserActive || $nodeType == XMLReader::END_ELEMENT){
continue;
}
$name = $xmlReader->name;
if (in_array ($name, $simpleNodeTypes))
{ // Skip to the text node
$xmlReader->read ();
$value = $xmlReader->value;
$items[$i][$name] = $value;
} else if ($name == "media:thumbnail") {
$items[$i]['thumbnail_url'] = $xmlReader->getAttribute("url");
} else if ($name == "media:content") {
$items[$i]['content_url'] = $xmlReader->getAttribute("url");
$items[$i]['type'] = $xmlReader->getAttribute("type");
} else if ($name == "media:category") {
$xmlReader->read ();
$items[$i]['tag'] = $xmlReader->value;
}
}
$items = array_slice($items, 0, 10); // ★ 지정한 크기만큼 할당</p>
<p>
로그인 후 평가할 수 있습니다
답변에 대한 댓글 1개
�
호박둥구리
4년 전
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인전체 질문 목록
답변대기
채택
채택
답변대기
채택
답변대기
답변대기
채택
채택
답변대기
답변대기
채택
채택
답변대기
채택
답변대기
채택
답변대기
채택
늦은밤 감사드립니다.~~~~~