rss 작성 질문 입니다. 채택완료
</p>
<p><?php</p>
<p>include_once('./common.php'); // 영카트5 공통 파일 포함</p>
<p> </p>
<p>header('Content-Type: application/rss+xml; charset=UTF-8');</p>
<p> </p>
<p>// RSS 헤더 작성</p>
<p>echo "<?xml version='1.0' encoding='UTF-8' ?>\n";</p>
<p>?></p>
<p><rss version="2.0"></p>
<p> <channel></p>
<p> <title>최신 콘텐츠 - <?php echo $config['cf_title']; ?></title></p>
<p> <link><?php echo G5_URL; ?></link></p>
<p> <description><?php echo $config['cf_title']; ?>의 최신 등록 콘텐츠</description></p>
<p> <language>ko</language></p>
<p> <pubDate><?php echo date('r'); ?></pubDate></p>
<p> </p>
<p> <?php</p>
<p> // 1. 상품 데이터 가져오기</p>
<p> $sql = "SELECT it_id, it_name, it_time, it_price</p>
<p> FROM {$g5['g5_shop_item_table']}</p>
<p> WHERE it_use = 1</p>
<p> ORDER BY it_time DESC</p>
<p> LIMIT 20";</p>
<p> $result = sql_query($sql);</p>
<p> </p>
<p> while ($row = sql_fetch_array($result)) {</p>
<p> $link = G5_SHOP_URL . '/item.php?it_id=' . $row['it_id']; // 상품 링크</p>
<p> $pubDate = date('r', strtotime($row['it_time'])); // 등록/수정 시간</p>
<p> ?></p>
<p> <item></p>
<p> <title><?php echo htmlspecialchars($row['it_name']); ?> - ₩<?php echo number_format($row['it_price']); ?></title></p>
<p> <link><?php echo $link; ?></link></p>
<p> <description>₩<?php echo number_format($row['it_price']); ?></description></p>
<p> <pubDate><?php echo $pubDate; ?></pubDate></p>
<p> </item></p>
<p> <?php</p>
<p> }</p>
<p> </p>
<p> // 2. 게시판 데이터 가져오기</p>
<p> $bo_table = 'gallery'; // 대상 게시판 테이블</p>
<p> $sql = "SELECT wr_id, wr_subject, wr_datetime,wr_content</p>
<p> FROM {$g5['write_prefix']}{$bo_table}</p>
<p> WHERE wr_is_comment = 0</p>
<p> ORDER BY wr_datetime DESC</p>
<p> LIMIT 20";</p>
<p> $result = sql_query($sql);</p>
<p> </p>
<p> while ($row = sql_fetch_array($result)) {</p>
<p> $link = G5_BBS_URL . '/board.php?bo_table=' . $bo_table . '&wr_id=' . $row['wr_id']; // 게시글 링크</p>
<p> $pubDate = date('r', strtotime($row['wr_datetime'])); // 등록 시간</p>
<p> ?></p>
<p> <item></p>
<p> <title><?php echo htmlspecialchars($row['wr_subject']); ?></title></p>
<p> <link><?php echo $link; ?></link></p>
<p> <description><![CDATA[<?php echo $row['wr_content']; ?>]]></description></p>
<p> <pubDate><?php echo $pubDate; ?></pubDate></p>
<p> </item></p>
<p> <?php</p>
<p> }</p>
<p>
</p>
<p> $bo_table = 'story'; // 대상 게시판 테이블</p>
<p> $sql = "SELECT wr_id, wr_subject, wr_datetime, wr_content</p>
<p> FROM {$g5['write_prefix']}{$bo_table}</p>
<p> WHERE wr_is_comment = 0</p>
<p> ORDER BY wr_datetime DESC</p>
<p> LIMIT 20";</p>
<p> $result = sql_query($sql);</p>
<p> </p>
<p> while ($row = sql_fetch_array($result)) {</p>
<p> $link = G5_BBS_URL . '/board.php?bo_table=' . $bo_table . '&wr_id=' . $row['wr_id']; // 게시글 링크</p>
<p> $pubDate = date('r', strtotime($row['wr_datetime'])); // 등록 시간</p>
<p> ?></p>
<p> <item></p>
<p> <title><?php echo htmlspecialchars($row['wr_subject']); ?></title></p>
<p> <link><?php echo $link; ?></link></p>
<p> <description><![CDATA[<?php echo $row['wr_content']; ?>]]></description></p>
<p> <pubDate><?php echo $pubDate; ?></pubDate></p>
<p> </item></p>
<p> <?php</p>
<p> }</p>
<p> </p>
<p> ?></p>
<p> </channel></p>
<p></rss></p>
<p> </p>
<p>
안녕하세요.
네이버에 등록하기 위해서 rss를 위와 같은 형식으로 만들고 등록을 하였는데
올바른 rss가 아니라면서 등록이 안되고 있습니다.
게시판 데이터 부분이 없으면 등록이 잘 되는 상태이고
url/rss.php를 하면 잘 나옵니다.
어느 부분이 문제일까요?
댓글을 작성하려면 로그인이 필요합니다.
답변 2개
채택된 답변
+20 포인트
11개월 전
기존코드
</p>
<p>SELECT wr_id, wr_subject, wr_datetime, wr_content</p>
<p> FROM {$g5['write_prefix']}{$bo_table}</p>
<p>
변경처리
</p>
<p>SELECT wr_id, wr_subject, wr_datetime, SUBSTR(wr_content, 1, 255) AS wr_content</p>
<p> FROM {$g5['write_prefix']}{$bo_table}</p>
<p>
로그인 후 평가할 수 있습니다
답변에 대한 댓글 1개
�
11개월 전
댓글을 작성하려면 로그인이 필요합니다.
11개월 전
자문 자답이 되어버렸는데
bbs/rss.php 가 있길래 거기보고 수정을 했는데 잘 되네요..
</p>
<p><?php</p>
<p>include_once('./_common.php');</p>
<p> </p>
<p>// 특수문자 변환 함수</p>
<p>function specialchars_replace($str, $len=0) {</p>
<p> if ($len) {</p>
<p> $str = substr($str, 0, $len);</p>
<p> }</p>
<p> $str = str_replace(array("&", "<", ">"), array("&", "<", ">"), $str);</p>
<p> return $str;</p>
<p>}</p>
<p> </p>
<p>// 처리할 bo_table 배열 정의</p>
<p>$bo_tables = ['gallery', 'story'];</p>
<p> </p>
<p>header('Content-type: text/xml');</p>
<p>header('Cache-Control: no-cache, must-revalidate');</p>
<p>header('Pragma: no-cache');</p>
<p> </p>
<p>echo '<?xml version="1.0" encoding="utf-8" ?>'."\n";</p>
<p>echo '<rss version="2.0" xmlns:dc="<a href="http://purl.org/dc/elements/1.1/">'."\n";" target="_blank" rel="noopener noreferrer">http://purl.org/dc/elements/1.1/">'."\n";</a></p>
<p>echo '<channel>'."\n";</p>
<p> </p>
<p>// 게시판 데이터 처리</p>
<p>foreach ($bo_tables as $bo_table) {</p>
<p> // 게시판 설정 조회</p>
<p> $sql = " select gr_id, bo_subject, bo_page_rows, bo_read_level, bo_use_rss_view</p>
<p> from {$g5['board_table']} where bo_table = '$bo_table' ";</p>
<p> $row = sql_fetch($sql);</p>
<p> </p>
<p> // 특수문자 변환 및 기본 설정</p>
<p> $subj2 = specialchars_replace($row['bo_subject'], 255);</p>
<p> $lines = $row['bo_page_rows'];</p>
<p> </p>
<p> // 비회원 읽기 및 RSS 사용 여부 확인</p>
<p> if ($row['bo_read_level'] >= 2 || !$row['bo_use_rss_view']) {</p>
<p> continue; // 조건에 맞지 않으면 건너뜀</p>
<p> }</p>
<p> </p>
<p> // 그룹 제목 조회</p>
<p> $sql = " select gr_subject from {$g5['group_table']} where gr_id = '{$row['gr_id']}' ";</p>
<p> $gr_row = sql_fetch($sql);</p>
<p> $subj1 = specialchars_replace($gr_row['gr_subject'], 255);</p>
<p> </p>
<p> // RSS 헤더 정보 출력</p>
<p> echo '<title>'.specialchars_replace($config['cf_title'].' > '.$subj1.' > '.$subj2).'</title>'."\n";</p>
<p> echo '<link>'.specialchars_replace(get_pretty_url($bo_table)).'</link>'."\n";</p>
<p> echo '<language>ko</language>'."\n";</p>
<p> </p>
<p> // 게시글 조회 및 RSS 항목 생성</p>
<p> $sql = " select wr_id, wr_subject, wr_content, wr_name, wr_datetime, wr_option</p>
<p> from {$g5['write_prefix']}$bo_table</p>
<p> where wr_is_comment = 0</p>
<p> and wr_option not like '%secret%'</p>
<p> order by wr_num, wr_reply limit 0, $lines ";</p>
<p> $result = sql_query($sql);</p>
<p> </p>
<p> for ($i=0; $row=sql_fetch_array($result); $i++) {</p>
<p> $file = '';</p>
<p> $html = strstr($row['wr_option'], 'html') ? 1 : 0;</p>
<p> </p>
<p> if ($i === 0) {</p>
<p> echo '<description>'.specialchars_replace($subj2).' ('.$row['wr_datetime'].')</description>'."\n";</p>
<p> }</p>
<p> </p>
<p> $date = substr($row['wr_datetime'], 0, 10)."T".substr($row['wr_datetime'], 11, 8)."+09:00";</p>
<p> </p>
<p> echo '<item>'."\n";</p>
<p> echo '<title>'.specialchars_replace($row['wr_subject']).'</title>'."\n";</p>
<p> echo '<link>'.specialchars_replace(get_pretty_url($bo_table, $row['wr_id'])).'</link>'."\n";</p>
<p> echo '<description><![CDATA['.$file.conv_content($row['wr_content'], $html).']]></description>'."\n";</p>
<p> echo '<dc:creator>'.specialchars_replace($row['wr_name']).'</dc:creator>'."\n";</p>
<p> echo '<dc:date>'.$date.'</dc:date>'."\n";</p>
<p> echo '</item>'."\n";</p>
<p> }</p>
<p>}</p>
<p> </p>
<p>// 상품 데이터 처리</p>
<p>echo '<!-- 상품 데이터 -->'."\n";</p>
<p>$sql = " SELECT it_id, it_name, it_time, it_price</p>
<p> FROM {$g5['g5_shop_item_table']}</p>
<p> WHERE it_use = 1</p>
<p> ORDER BY it_time DESC</p>
<p> LIMIT 20 ";</p>
<p>$result = sql_query($sql);</p>
<p> </p>
<p>while ($row = sql_fetch_array($result)) {</p>
<p> $link = get_pretty_url('item', $row['it_id']);</p>
<p> $date = substr($row['it_datetime'], 0, 10)."T".substr($row['it_datetime'], 11, 8)."+09:00";</p>
<p> </p>
<p> echo '<item>'."\n";</p>
<p> echo '<title>'.specialchars_replace($row['it_name']).'</title>'."\n";</p>
<p> echo '<link>'.specialchars_replace($link).'</link>'."\n";</p>
<p> echo '<description><![CDATA[가격: '.number_format($row['it_price']).'원]]></description>'."\n";</p>
<p> echo '<dc:date>'.$date.'</dc:date>'."\n";</p>
<p> echo '</item>'."\n";</p>
<p>}</p>
<p> </p>
<p>echo '</channel>'."\n";</p>
<p>echo '</rss>'."\n";</p>
<p>
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인전체 질문 목록
채택
채택
답변대기
답변대기
채택
채택
채택
채택
채택
채택
채택
채택
답변대기
채택
답변대기
답변대기
채택
채택
답변대기
채택
<item>
<title><?php echo htmlspecialchars($row['wr_subject']); ?></title>
<link><?php echo $link; ?></link>
<description><![CDATA[<?php echo $row['wr_content']; ?>]]></description>
<pubDate><?php echo $pubDate; ?></pubDate>
</item> 이부분을 빼니까 되는데 이게 문제가 되는걸까요?