CI 묻고 답하기

제목 [초보]character_limiter로 문자 자르기
글쓴이 헛발이 작성시각 2009/12/19 12:25:26
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 27932   RSS
character_limiter() 이 함수는 영어문자열만 되나봐요?
해 보니깐 영어는 잘 되는데.. 한글이나 2바이트 문자를 해보니.. 영 이상하게 잘리네요...

제가 잘못 조작하는건가요?

$string = "코드이그나이터 포럼활동하기";
$string = character_limiter($string, 5);
echo $string;
 다음글 오토로드 에서 DB접속 (10)
 이전글 [초보]csv파일 읽어 DB에 저장하기 (5)

댓글

헛발이 / 2009/12/19 13:02:49 / 추천 0
  function hc( $str, $n = 500, $end_char = ' ...' )
  {
    $CI =& get_instance();
    $charset = $CI->config->item('charset');
    
    if ( mb_strlen( $str , $charset) < $n ) {
      return $str ;
    }

    $str = preg_replace( "/\s+/iu", ' ', str_replace( array( "\r\n", "\r", "\n" ), ' ', $str ) );

    if ( mb_strlen( $str , $charset) <= $n ) {
      return $str;
    }
    return mb_substr(trim($str), 0, $n ,$charset) . $end_char ;
  }
음.. 찾아 보니 만들어서 사용해야 하는거 같아서... 일본 블로그에서 찾아 만들어 넣었습니다. ㅋㅋ

변종원(웅파) / 2009/12/19 13:23:06 / 추천 0

헛발이님 홧팅~ ^^
영문기준이라 2바이트 또는 utf-8에서의 3바이트 처리는 제대로 되지않습니다.

헛발이 / 2009/12/19 13:52:38 / 추천 0
아 ~ 한글이 1바이트고 영문이 0.5바이트면 좋겠네요 ㅋㅋ
이현석 / 2011/08/19 22:52:52 / 추천 0
 앜 대박!
잘쓰겠습니다!