묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
최근게시물 문자짜르기 구현시 특수문자 생기는거..
2003.05.06 02:48
아래가 소스고요..
<?
$host_name = "localhost"; // DB서버의 위치입니다.
$user_name = "******"; // 자신의 계정의 ID를 넣으시면 되요.
$user_password = "******"; // 자신의 DB의 Password 입니다.
$db_name ="edonkey"; // 자신이 사용할 DB의 이름입니다
$connect = mysql_connect($host_name,$user_name,$user_password);
mysql_select_db($db_name, $connect);
$result = mysql_query("SELECT uid,uname,signdate,concat(substring(subject,1,17),if(length(subject)>30,'...','')) as subject FROM movie order by signdate desc limit 7 ",$connect);
while($data=mysql_fetch_array($result)){
$data[uname]=stripslashes($data[uname]);
$data[subject]=stripslashes($data[subject]);
$data[signdate] = date("Y/m/d", $data[signdate]);
echo "<table border=0 cellpadding=0 cellspacing=0>
<tr><td>[$data[uname]]</td>
<td width=3></td>
<td width=130><a href='../board/movie.php?mode=read&number=${data[uid]}'>${data[subject]}</a></td>
<td width=10>[$data[signdate]]<br></td></tr></table>" ;
}
?>
이렇게 하면 문자는 짤리는데요. 짤린부분은 [...]게 되어야 하는데 ?, a>같은 이상한 문자가 생기거던요..
고칠수 잇는방법없을까요.
<?
$host_name = "localhost"; // DB서버의 위치입니다.
$user_name = "******"; // 자신의 계정의 ID를 넣으시면 되요.
$user_password = "******"; // 자신의 DB의 Password 입니다.
$db_name ="edonkey"; // 자신이 사용할 DB의 이름입니다
$connect = mysql_connect($host_name,$user_name,$user_password);
mysql_select_db($db_name, $connect);
$result = mysql_query("SELECT uid,uname,signdate,concat(substring(subject,1,17),if(length(subject)>30,'...','')) as subject FROM movie order by signdate desc limit 7 ",$connect);
while($data=mysql_fetch_array($result)){
$data[uname]=stripslashes($data[uname]);
$data[subject]=stripslashes($data[subject]);
$data[signdate] = date("Y/m/d", $data[signdate]);
echo "<table border=0 cellpadding=0 cellspacing=0>
<tr><td>[$data[uname]]</td>
<td width=3></td>
<td width=130><a href='../board/movie.php?mode=read&number=${data[uid]}'>${data[subject]}</a></td>
<td width=10>[$data[signdate]]<br></td></tr></table>" ;
}
?>
이렇게 하면 문자는 짤리는데요. 짤린부분은 [...]게 되어야 하는데 ?, a>같은 이상한 문자가 생기거던요..
고칠수 잇는방법없을까요.
댓글 6
-
yjae
2003.05.06 04:08
한글이 2 바이트라 한글 가운데서 짤려버리면 다음 문자와 합성 되 특수문자가 생겨버립니다. 아스키 코드를 활용하세요. :) -
yjae
2003.05.06 04:09
제가 쓰는 것입니다.
function shortenText( $text, $max )
{ $text=strip_tags($text);
$str = stripslashes($text);
$flag = false;
for($i = 0; $i < $max; $i++) {
$j = ord($str[$i]);
if($j > 127) {
if( $flag )
$flag = false;
else
$flag = true;
}
else $flag = false;
}
if (strlen($str)>$max){
if( $flag )
$text = substr($str, 0, $max + 1)."-";
else
$text = substr($str, 0, $max)."-";
}
else $text = $str;
return $text;
} -
yjae
2003.05.06 04:10
... -_- 탭이 안되는군요-_- 어쨌든 더 도움 필요하시면 메모. -
정수경
2003.05.06 06:21
소스를 어떻게 적용하는 겁니까.. -
소프트맨
2003.05.06 13:19
<?
$host_name = "localhost"; // DB서버의 위치입니다.
$user_name = "******"; // 자신의 계정의 ID를 넣으시면 되요.
$user_password = "******"; // 자신의 DB의 Password 입니다.
$db_name ="edonkey"; // 자신이 사용할 DB의 이름입니다
$connect = mysql_connect($host_name,$user_name,$user_password);
mysql_select_db($db_name, $connect);
$result = mysql_query("SELECT * FROM movie order by signdate desc limit 7 ",$connect);
while($data=mysql_fetch_array($result)){
$data[uname]=stripslashes($data[uname]);
$data[subject]=stripslashes($data[subject]);
$data[subject]=shortenText($data[subject], 30); // 2번째 인수에 최대 길이를 입력
$data[signdate] = date("Y/m/d", $data[signdate]);
echo "<table border=0 cellpadding=0 cellspacing=0>
<tr><td>[$data[uname]]</td>
<td width=3></td>
<td width=130><a href='../board/movie.php?mode=read&number=${data[uid]}'>${data[subject]}</a></td>
<td width=10>[$data[signdate]]<br></td></tr></table>" ;
}
function shortenText( $text, $max )
{ $text=strip_tags($text);
$str = stripslashes($text);
$flag = false;
for($i = 0; $i < $max; $i++) {
$j = ord($str[$i]);
if($j > 127) {
if( $flag )
$flag = false;
else
$flag = true;
}
else $flag = false;
}
if (strlen($str)>$max){
if( $flag )
$text = substr($str, 0, $max + 1)."-";
else
$text = substr($str, 0, $max)."-";
}
else $text = $str;
return $text;
}
?>
함수 정의 부분은 소스 아무 곳에나 붙여 넣기 한 후... call 하면 됩니다. -
정수경
2003.05.07 08:47
감사합니다..
수고하십시요..