테스트 사이트 - 개발 중인 베타 버전입니다

XML Encoding Name? 채택완료

fm25 10년 전 조회 3,952

http://sir.co.kr/bbs/board.php?bo_table=g4_skin&wr_id=152482&page=3">http://sir.co.kr/bbs/board.php?bo_table=g4_skin&wr_id=152482&page=3 

 

위 '말풍선' 최신글 스킨을 '그누보드 5'에 적용시켰습니다.

'먼지손'님의 도움으로 파일을 일부 수정하여 정상적으로 뜨고, 해당 글 주소로 들어가는 부분까지는 아무런 문제가 없습니다.

 

적용한 곳 : http://internationale.kr/index_example_4.php">http://internationale.kr/index_example_4.php

 

 

그런데

http://internationale.kr/swf/talkopen.php">http://internationale.kr/swf/talkopen.php 

이 파일로 직접 접근하면... 불러온 최신글들의 '소스보기'가 되어야 하는데... 오류가 뜹니다.

스킨의 사용에는 아무런 지장이 없으나... 께림칙하여 혹 바로잡을 수 있는 방법이 없는지 문의드립니다.

 

아래는 수정한 'talkopen.php​' 파일의 소스 전체입니다.

 

</span><?php</p><p>// 48시간 말풍선 최신글 스킨 2009년 8월 13일 목요일</p><p>// 부용님께서 만들어 주신 전체게시판을 사용할 수 있는 php입니다. UTF-8에서 사용하시면 됩니다.</p><p>// 전체새글에서 추출</p><p>$_gnu_url = ""; // 그누보드 루트</p><p>$g5_path = '..';</p><p>include_once($g5_path.'/common.php');</p><p> </p><p>$turl = "<a href="<a href="http://internationale.kr/bbs/board.php?bo_table=free" target="_blank" rel="noopener noreferrer">http://internationale.kr/bbs/board.php?bo_table=free</a>"><a href="http://internationale.kr/bbs/board.php?bo_table=free" target="_blank" rel="noopener noreferrer">http://internationale.kr/bbs/board.php?bo_table=free</a></a>"; // 플래시 전체링크</p><p>$lines = 40; // 갯수</p><p> </p><p>// 쿼리 조건외 제외시키고자 하는 그룹 및 게시판을 수동으로 추가 </p><p>$excgr = "('song', 'photo', 'info', 'catholic', 'favorites', 'shop')"; // 제외 그룹</p><p>$excbo = "('history')"; // 제외 게시판</p><p> </p><p>function specialchars_replace($str, $len=0)</p><p>{</p><p>  if ($len)</p><p>  {</p><p>    $str = substr($str, 0, $len);</p><p>  }</p><p>  $str = preg_replace("/&/", "&amp;", $str);</p><p>  $str = preg_replace("/</", "&lt;", $str);</p><p>  $str = preg_replace("/>/", "&gt;", $str);</p><p>  return $str;</p><p>}</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=\"".$g5[charset]."\"?>\n";</p><p>echo "<rss>\n";</p><p> </p><p>$sql_common = " from " . $g5['board_new_table'] . " a, " . $g5['board_table'] . " b, " . $g5['group_table'] . " c where a.bo_table = b.bo_table and b.gr_id = c.gr_id and b.bo_use_search = '1' ";</p><p> </p><p>if (!empty($gr_id))</p><p>  $sql_common .= " and b.gr_id = '$gr_id' ";</p><p> </p><p>$sql_common .= " and b.gr_id not in " . $excgr . " and b.bo_table not in " . $excbo . " "; // 제외설정</p><p> </p><p>$sql_common .= " and a.wr_id = a.wr_parent ";</p><p> </p><p>$sql_order = " order by a.bn_id desc ";</p><p> </p><p>$sql = " select a.*, b.bo_subject, c.gr_subject</p><p>                      $sql_common</p><p>                      $sql_order</p><p>                      limit $lines ";</p><p> </p><p>$result = sql_query($sql);</p><p>for ($i=0; $row=sql_fetch_array($result); $i++)</p><p>{</p><p>  $tmp_write_table = $g5['write_prefix'] . $row['bo_table'];</p><p>  $row2 = sql_fetch(" select * from $tmp_write_table where wr_id = '" . $row['wr_id'] . "' ");</p><p>  // 비밀글이면 통과</p><p>  if (preg_match("`secret`", $row2['wr_option'])) continue;</p><p>  $wr_subject = specialchars_replace(iconv("UTF-8", "EUC-KR", $row2[wr_subject]));</p><p>  $wr_link = specialchars_replace(G5_BBS_URL."/board.php?bo_table=" . $row['bo_table'] . "&wr_id=" . $row['wr_id']);</p><p>  //$wr_content = $row2['wr_content'];</p><p>  $wr_name = specialchars_replace(iconv("UTF-8", "EUC-KR", $row2[wr_name]));</p><p>  $wr_date = $row2['wr_datetime'];</p><p>  $wr_date = date('r', strtotime($wr_date));</p><p> </p><p>  echo "<list turl=\"".$turl."\">\n";</p><p>  echo "<dd><![CDATA[".$wr_name."]]></dd>\n";</p><p>  echo "<ct>".$wr_date."</ct>\n";</p><p>  echo "<tt><![CDATA[".$wr_subject."]]></tt>\n";</p><p>  echo "<uu>".$wr_link."</uu>\n";</p><p>  echo "</list>\n";</p><p>}</p><p> </p><p>echo "</rss>";</p><p>?><span style="font-size: 10pt; line-height: 1.5;">

 

 

echo "<?xml version="1.0" encoding="utf-8"?>\n"; 

이렇게 수정하면... 그나마 뜨던 풍선이 모두 자취를 감춥니다.

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

10년 전

32라인

//echo "<?xml version=\"1.0\" encoding=\"".$g5[charset]."\"?>\n";

echo "<?xml version=\"1.0\" encoding=\"euc-kr\"?>\n";

미쳐 문서 전체를 못봤었군요;

문서타입도 ansi인거죠?

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

중간중간 iconv보니깐 iconv("UTF-8""EUC-KR"$row2[wr_name])​ 이렇게 해두셨던데...

 

euc-kr문서 아니신가요?

 

iconv가 앞에꺼에서 중간꺼로 뒤에있는 문자열을 변환시키는거 아닌가요?ㅎㅎ

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

f
fm25
10년 전
부용님이 (UTF-8 용으로) 수정한 내용인데... 저는 이해할 수 있는 수준이 못되요...;;;
순서를 바꿔보면 글자가 깨지네요.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인