4.31.06 패치후 문자마킹 함수 작동안되요 정보
4.31.06 패치후 문자마킹 함수 작동안되요본문
4.31.06 패치후
lib/common.lib.php에 400번째줄에 다음 문자마킹함수를 추가해서 쓰고 있는데요
/*
strHideWord(문자열,보여줄길이,마킹색상,마킹위치);
보여줄길이 null -> 문자열 절반만 마킹
보여줄길이 0 -> 전체 문자열 마킹
마킹위치 -> 0 왼쪽 글자보여줌
마킹위치 -> 1 오른쪽 글자만 보여줌
strHideWord(문자열,보여줄길이,마킹색상,마킹위치);
echo strHideWord('가1나다라마마1212ㄴ안아',3,'red',0);
-> 가1나XXXXXXXXXXX
echo strHideWord('가1나다라마마1212ㄴ안아',3,'red',1);
-> XXXXXXXXXXXㄴ안아
*/
function strHideWord($str,$extent=null,$color="",$pos=0) {
$str_len = strlen($str);
$str_key = array();
$seq = 0;
for($i=0;$i<$str_len;$i++) {
if(ord($str[$i]) > 128) {
$seq++;
if($seq%2==0)
$str_key[]=$i+1;
} else {
$str_key[]=$i+1;
}
}
$array_cnt = count($str_key);
if($extent === null)
$extent = intval($array_cnt/2);
elseif($extent && $extent > $array_cnt)
return $str;
if($extent && $pos==0)
$rtn = substr($str,0,$str_key[$extent-1]);
elseif($extent && $pos==1)
$rtn = substr($str,$str_key[$array_cnt - $extent-1],$str_len);
for($i=$extent;$i<$array_cnt;$i++) {
$ertn .= "○";
}
if($color)
$ertn = "<font color='".$color."'>".$ertn."</font>";
if($pos)
return $ertn.$rtn;
else
return $rtn.$ertn;
}
해당스킨에
<td><nobr style='display:block; overflow:hidden; width:75px;'><?echo strHideWord($list[$i][name],1,'gray',0); ?></nobr></td>
이렇게 쓰고있는데요
기존에는 김○○
패치후
글쓴이 표기가
<○○○○○○○○○○○○○○○○○○○○○○○○○○○○○ |
댓글 전체
단지 출력부분 문제인것 같은데요..
<nobr style='display:block; overflow:hidden; width:75px;'>
<?echo strHideWord($list[$i][name],1,'gray',0); ?>
</nobr>
위의 width부분을 적당하게 조절해 보세요.
현재는 75px보다 크면 나머지는 hidden(숨김) 속성이 지정되어 있습니다.
그래도 원하시는 대로 나오지 않는다면
$list[$i][name]값이 정상적으로 불러오는지 확인해 보세요.
만일 $list[$i][name] 값이 '홍길동' 이런식으로 정상이라면 아무 문제가 없습니다.
단지 width값 문제겠지요.
테스트해 본결과 배열값, nobr 태그 width설정값 문제 아닙니다.