리스트 페이지에서 제목이 깨진채로 나옵니다. 채택완료
bismute
11년 전
조회 4,157

위 그림과 같이 게시글에서 어느 길이를 넘어서면 다음과 같이 게시글의 글자가 깨져서 나옵니다.
DB의 테이블과 페이지의 언어셋은 모두 UTF-8입니다.
그런데 다음과 같이 글씨가 길어지면 저런 현상이 발생되는데
이 글씨를 정상적으로 출력하려면 어떻게 해야 될까요?
</div>
<div>
<div><?</div>
<div>if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가 </div>
<div>
</div>
<div>// 선택옵션으로 인해 셀합치기가 가변적으로 변함</div>
<div>$colspan = 5;</div>
<div>
</div>
<div>//if ($is_category) $colspan++;</div>
<div>if ($is_checkbox) $colspan++;</div>
<div>if ($is_good) $colspan++;</div>
<div>if ($is_nogood) $colspan++;</div>
<div>
</div>
<div>// 제목이 두줄로 표시되는 경우 이 코드를 사용해 보세요.</div>
<div>// <nobr style='display:block; overflow:hidden; width:000px;'>제목</nobr></div>
<div>?></div>
<div>
</div>
<div><style></div>
<div>.board_top { clear:both; }</div>
<div>
</div>
<div>.board_list { clear:both; width:100%; table-layout:fixed; margin:5px 0 0 0; }</div>
<div>.board_list th { font-weight:bold; font-size:12px; } </div>
<div>.board_list th { background:url(<?=$board_skin_path?>/img/title_bg.gif) repeat-x; } </div>
<div>.board_list th { white-space:nowrap; height:34px; overflow:hidden; text-align:center; } </div>
<div>.board_list th { border-top:1px solid #ddd; border-bottom:1px solid #ddd; } </div>
<div>
</div>
<div>.board_list tr.bg0 { background-color:#fafafa; } </div>
<div>.board_list tr.bg1 { background-color:#ffffff; } </div>
<div>
</div>
<div>.board_list td { padding:.5em; }</div>
<div>.board_list td { border-bottom:1px solid #ddd; } </div>
<div>.board_list td.num { color:#999999; text-align:center; }</div>
<div>.board_list td.checkbox { text-align:center; }</div>
<div>.board_list td.subject { overflow:hidden; }</div>
<div>.board_list td.name { padding:0 0 0 10px; }</div>
<div>.board_list td.datetime { font:normal 11px tahoma; color:#BABABA; text-align:center; }</div>
<div>.board_list td.hit { font:normal 11px tahoma; color:#BABABA; text-align:center; }</div>
<div>.board_list td.good { font:normal 11px tahoma; color:#BABABA; text-align:center; }</div>
<div>.board_list td.nogood { font:normal 11px tahoma; color:#BABABA; text-align:center; }</div>
<div>
</div>
<div>.board_list .notice { font-weight:normal; }</div>
<div>.board_list .current { font:bold 11px tahoma; color:#E15916; }</div>
<div>.board_list .comment { font-family:Tahoma; font-size:10px; color:#EE5A00; }</div>
<div>
</div>
<div>.board_button { clear:both; margin:10px 0 0 0; }</div>
<div>
</div>
<div>.board_page { clear:both; text-align:center; margin:3px 0 0 0; }</div>
<div>.board_page a:link { color:#777; }</div>
<div>
</div>
<div>.board_search { text-align:center; margin:10px 0 0 0; }</div>
<div>.board_search .stx { height:21px; border:1px solid #9A9A9A; border-right:1px solid #D8D8D8; border-bottom:1px solid #D8D8D8; }</div>
<div></style></div>
<div>
</div>
<div><!-- 게시판 목록 시작 --></div>
<div><table width="<?=$width?>" align="center" cellpadding="0" cellspacing="0"><tr><td></div>
<div>
</div>
<div> <!-- 분류 셀렉트 박스, 게시물 몇건, 관리자화면 링크 --></div>
<div> <div class="board_top"></div>
<div> <div style="float:left;"></div>
<div> <form name="fcategory" method="get" style="margin:0px;"></div>
<div> <? if ($is_category) { ?></div>
<div> <select name=sca onchange="location='<?=$category_location?>'+<?=strtolower($g4[charset])=='utf-8' ? "encodeURIComponent(this.value)" : "this.value"?>;"></div>
<div> <option value=''>전체</option></div>
<div> <?=$category_option?></div>
<div> </select></div>
<div> <? } ?></div>
<div> </form></div>
<div> </div></div>
<div> <div style="float:right;"></div>
<div> <img src="<?=$board_skin_path?>/img/icon_total.gif" align="absmiddle" border='0'></div>
<div> <span style="color:#888888; font-weight:bold;">Total <?=number_format($total_count)?></span></div>
<div> <? if ($rss_href) { ?><a href='<?=$rss_href?>'><img src='<?=$board_skin_path?>/img/btn_rss.gif' border='0' align="absmiddle"></a><?}?></div>
<div> <? if ($admin_href) { ?><a href="<?=$admin_href?>"><img src="<?=$board_skin_path?>/img/btn_admin.gif" border='0' title="관리자" align="absmiddle"></a><?}?></div>
<div> </div></div>
<div> </div></div>
<div>
</div>
<div> <!-- 제목 --></div>
<div> <form name="fboardlist" method="post"></div>
<div> <input type='hidden' name='bo_table' value='<?=$bo_table?>'></div>
<div> <input type='hidden' name='sfl' value='<?=$sfl?>'></div>
<div> <input type='hidden' name='stx' value='<?=$stx?>'></div>
<div> <input type='hidden' name='spt' value='<?=$spt?>'></div>
<div> <input type='hidden' name='page' value='<?=$page?>'></div>
<div> <input type='hidden' name='sw' value=''></div>
<div>
</div>
<div> <table cellspacing="0" cellpadding="0" class="board_list"></div>
<div> <col width="50" /></div>
<div> <? if ($is_checkbox) { ?><col width="40" /><? } ?></div>
<div> <col /></div>
<div> <col width="110" /></div>
<div> <col width="40" /></div>
<div> <col width="50" /></div>
<div> <? if ($is_good) { ?><col width="40" /><? } ?></div>
<div> <? if ($is_nogood) { ?><col width="40" /><? } ?></div>
<div> <tr></div>
<div> <th>번호</th></div>
<div> <? if ($is_checkbox) { ?><th><input onclick="if (this.checked) all_checked(true); else all_checked(false);" type="checkbox"></th><?}?></div>
<div> <th>제 목</th></div>
<div> <th>글쓴이</th></div>
<div> <th><?=subject_sort_link('wr_datetime', $qstr2, 1)?>날짜</a></th></div>
<div> <th><?=subject_sort_link('wr_hit', $qstr2, 1)?>조회</a></th></div>
<div> <? if ($is_good) { ?><th><?=subject_sort_link('wr_good', $qstr2, 1)?>추천</a></th><?}?></div>
<div> <? if ($is_nogood) { ?><th><?=subject_sort_link('wr_nogood', $qstr2, 1)?>비추천</a></th><?}?></div>
<div> </tr></div>
<div>
</div>
<div> <? </div>
<div> for ($i=0; $i<count($list); $i++) { </div>
<div> $bg = $i%2 ? 0 : 1;</div>
<div> ?></div>
<div>
</div>
<div> <tr class="bg<?=$bg?>"> </div>
<div> <td class="num"></div>
<div> <? </div>
<div> if ($list[$i][is_notice]) // 공지사항 </div>
<div> echo "<b>공지</b>";</div>
<div> else if ($wr_id == $list[$i][wr_id]) // 현재위치</div>
<div> echo "<span class='current'>{$list[$i][num]}</span>";</div>
<div> else</div>
<div> echo $list[$i][num];</div>
<div> ?></div>
<div> </td></div>
<div> <? if ($is_checkbox) { ?><td class="checkbox"><input type=checkbox name=chk_wr_id[] value="<?=$list[$i][wr_id]?>"></td><? } ?></div>
<div> <td class="subject"></div>
<div> <? </div>
<div> echo $nobr_begin;</div>
<div> echo $list[$i][reply];</div>
<div> echo $list[$i][icon_reply];</div>
<div> if ($is_category && $list[$i][ca_name]) { </div>
<div> echo "<span class=small><font color=gray>[<a href='{$list[$i][ca_name_href]}'>{$list[$i][ca_name]}</a>]</font></span> ";</div>
<div> }</div>
<div>
</div>
<div> if ($list[$i][is_notice])</div>
<div> echo "<a href='{$list[$i][href]}'><span class='notice'>{$list[$i][subject]}</span></a>";</div>
<div> else</div>
<div> echo "<a href='{$list[$i][href]}'>{$list[$i][subject]}</a>";</div>
<div>
</div>
<div> if ($list[$i][comment_cnt]) </div>
<div> echo " <a href=\"{$list[$i][comment_href]}\"><span class='comment'>{$list[$i][comment_cnt]}</span></a>";</div>
<div>
</div>
<div> // if ($list[$i]['link']['count']) { echo "[{$list[$i]['link']['count']}]"; }</div>
<div> // if ($list[$i]['file']['count']) { echo "<{$list[$i]['file']['count']}>"; }</div>
<div>
</div>
<div> echo " " . $list[$i][icon_new];</div>
<div> echo " " . $list[$i][icon_file];</div>
<div> echo " " . $list[$i][icon_link];</div>
<div> echo " " . $list[$i][icon_hot];</div>
<div> echo " " . $list[$i][icon_secret];</div>
<div><span class="Apple-tab-span" style="white-space: pre"> </span>echo " " . $list[$i][icon_image];</div>
<div> echo $nobr_end;</div>
<div> ?></div>
<div> </td></div>
<div> <td class="name"><?=$list[$i][name]?></td></div>
<div> <td class="datetime"><?=$list[$i][datetime2]?></td></div>
<div> <td class="hit"><?=$list[$i][wr_hit]?></td></div>
<div> <? if ($is_good) { ?><td class="good"><?=$list[$i][wr_good]?></td><? } ?></div>
<div> <? if ($is_nogood) { ?><td class="nogood"><?=$list[$i][wr_nogood]?></td><? } ?></div>
<div> </tr></div>
<div> <? } // end for ?></div>
<div>
</div>
<div> <? if (count($list) == 0) { echo "<tr><td colspan='$colspan' height=100 align=center>게시물이 없습니다.</td></tr>"; } ?></div>
<div>
</div>
<div> </table></div>
<div> </form></div>
<div>
</div>
<div> <div class="board_button"></div>
<div> <div style="float:left;"></div>
<div> <? if ($list_href) { ?></div>
<div> <a href="<?=$list_href?>"><img src="<?=$board_skin_path?>/img/btn_list.gif" align="absmiddle" border='0'></a></div>
<div> <? } ?></div>
<div> <? if ($is_checkbox) { ?></div>
<div> <a href="javascript:select_delete();"><img src="<?=$board_skin_path?>/img/btn_select_delete.gif" align="absmiddle" border='0'></a></div>
<div> <a href="javascript:select_copy('copy');"><img src="<?=$board_skin_path?>/img/btn_select_copy.gif" align="absmiddle" border='0'></a></div>
<div> <a href="javascript:select_copy('move');"><img src="<?=$board_skin_path?>/img/btn_select_move.gif" align="absmiddle" border='0'></a></div>
<div> <? } ?></div>
<div> </div></div>
<div>
</div>
<div> <div style="float:right;"></div>
<div> <? if ($write_href) { ?><a href="<?=$write_href?>"><img src="<?=$board_skin_path?>/img/btn_write.gif" border='0'></a><? } ?></div>
<div> </div></div>
<div> </div></div>
<div>
</div>
<div> <!-- 페이지 --></div>
<div> <div class="board_page"></div>
<div> <? if ($prev_part_href) { echo "<a href='$prev_part_href'><img src='$board_skin_path/img/page_search_prev.gif' border='0' align=absmiddle title='이전검색'></a>"; } ?></div>
<div> <?</div>
<div> // 기본으로 넘어오는 페이지를 아래와 같이 변환하여 이미지로도 출력할 수 있습니다.</div>
<div> //echo $write_pages;</div>
<div> $write_pages = str_replace("처음", "<img src='$board_skin_path/img/page_begin.gif' border='0' align='absmiddle' title='처음'>", $write_pages);</div>
<div> $write_pages = str_replace("이전", "<img src='$board_skin_path/img/page_prev.gif' border='0' align='absmiddle' title='이전'>", $write_pages);</div>
<div> $write_pages = str_replace("다음", "<img src='$board_skin_path/img/page_next.gif' border='0' align='absmiddle' title='다음'>", $write_pages);</div>
<div> $write_pages = str_replace("맨끝", "<img src='$board_skin_path/img/page_end.gif' border='0' align='absmiddle' title='맨끝'>", $write_pages);</div>
<div> //$write_pages = preg_replace("/<span>([0-9]*)<\/span>/", "$1", $write_pages);</div>
<div> $write_pages = preg_replace("/<b>([0-9]*)<\/b>/", "<b><span style=\"color:#4D6185; font-size:12px; text-decoration:underline;\">$1</span></b>", $write_pages);</div>
<div> ?></div>
<div> <?=$write_pages?></div>
<div> <? if ($next_part_href) { echo "<a href='$next_part_href'><img src='$board_skin_path/img/page_search_next.gif' border='0' align=absmiddle title='다음검색'></a>"; } ?></div>
<div> </div></div>
<div>
</div>
<div> <!-- 검색 --></div>
<div> <div class="board_search"></div>
<div> <form name="fsearch" method="get"></div>
<div> <input type="hidden" name="bo_table" value="<?=$bo_table?>"></div>
<div> <input type="hidden" name="sca" value="<?=$sca?>"></div>
<div> <select name="sfl"></div>
<div> <option value="wr_subject">제목</option></div>
<div> <option value="wr_content">내용</option></div>
<div> <option value="wr_subject||wr_content">제목+내용</option></div>
<div> <option value="mb_id,1">회원아이디</option></div>
<div> <option value="mb_id,0">회원아이디(코)</option></div>
<div> <option value="wr_name,1">글쓴이</option></div>
<div> <option value="wr_name,0">글쓴이(코)</option></div>
<div> </select></div>
<div> <input name="stx" class="stx" maxlength="15" itemname="검색어" required value='<?=stripslashes($stx)?>'></div>
<div> <input type="image" src="<?=$board_skin_path?>/img/btn_search.gif" border='0' align="absmiddle"></div>
<div> <input type="radio" name="sop" value="and">and</div>
<div> <input type="radio" name="sop" value="or">or</div>
<div> </form></div>
<div> </div></div>
<div>
</div>
<div></td></tr></table></div>
<div>
</div>
<div><script type="text/javascript"></div>
<div>if ('<?=$sca?>') document.fcategory.sca.value = '<?=$sca?>';</div>
<div>if ('<?=$stx?>') {</div>
<div> document.fsearch.sfl.value = '<?=$sfl?>';</div>
<div>
</div>
<div> if ('<?=$sop?>' == 'and') </div>
<div> document.fsearch.sop[0].checked = true;</div>
<div>
</div>
<div> if ('<?=$sop?>' == 'or')</div>
<div> document.fsearch.sop[1].checked = true;</div>
<div>} else {</div>
<div> document.fsearch.sop[0].checked = true;</div>
<div>}</div>
<div></script></div>
<div>
</div>
<div><? if ($is_checkbox) { ?></div>
<div><script type="text/javascript"></div>
<div>function all_checked(sw) {</div>
<div> var f = document.fboardlist;</div>
<div>
</div>
<div> for (var i=0; i<f.length; i++) {</div>
<div> if (f.elements[i].name == "chk_wr_id[]")</div>
<div> f.elements[i].checked = sw;</div>
<div> }</div>
<div>}</div>
<div>
</div>
<div>function check_confirm(str) {</div>
<div> var f = document.fboardlist;</div>
<div> var chk_count = 0;</div>
<div>
</div>
<div> for (var i=0; i<f.length; i++) {</div>
<div> if (f.elements[i].name == "chk_wr_id[]" && f.elements[i].checked)</div>
<div> chk_count++;</div>
<div> }</div>
<div>
</div>
<div> if (!chk_count) {</div>
<div> alert(str + "할 게시물을 하나 이상 선택하세요.");</div>
<div> return false;</div>
<div> }</div>
<div> return true;</div>
<div>}</div>
<div>
</div>
<div>// 선택한 게시물 삭제</div>
<div>function select_delete() {</div>
<div> var f = document.fboardlist;</div>
<div>
</div>
<div> str = "삭제";</div>
<div> if (!check_confirm(str))</div>
<div> return;</div>
<div>
</div>
<div> if (!confirm("선택한 게시물을 정말 "+str+" 하시겠습니까?\n\n한번 "+str+"한 자료는 복구할 수 없습니다"))</div>
<div> return;</div>
<div>
</div>
<div> f.action = "./delete_all.php";</div>
<div> f.submit();</div>
<div>}</div>
<div>
</div>
<div>// 선택한 게시물 복사 및 이동</div>
<div>function select_copy(sw) {</div>
<div> var f = document.fboardlist;</div>
<div>
</div>
<div> if (sw == "copy")</div>
<div> str = "복사";</div>
<div> else</div>
<div> str = "이동";</div>
<div> </div>
<div> if (!check_confirm(str))</div>
<div> return;</div>
<div>
</div>
<div> var sub_win = window.open("", "move", "left=50, top=50, width=500, height=550, scrollbars=1");</div>
<div>
</div>
<div> f.sw.value = sw;</div>
<div> f.target = "move";</div>
<div> f.action = "./move.php";</div>
<div> f.submit();</div>
<div>}</div>
<div></script></div>
<div><? } ?></div>
<div><!-- 게시판 목록 끝 --></div></div>
<div>
</div>
<div>
댓글을 작성하려면 로그인이 필요합니다.
답변 1개
답변을 작성하려면 로그인이 필요합니다.
로그인