문자열을 원하는 길이(글자수)에서 끊어(자르기) 말줄임표로 보이기 > 기술자료 | 해피정닷컴

문자열을 원하는 길이(글자수)에서 끊어(자르기) 말줄임표로 보이기 > 기술자료

본문 바로가기

사이트 내 전체검색

문자열을 원하는 길이(글자수)에서 끊어(자르기) 말줄임표로 보이기 > 기술자료

PHP 문자열을 원하는 길이(글자수)에서 끊어(자르기) 말줄임표로 보이기

페이지 정보


본문

문자열을 줄이는 방법입니다.


1. php 기본 함수 사용하기
<?php
  include "dbconn.php"; 
  $query = "select * from hanatv_movie order by no asc limit 2";
  $result = mysql_query($query, $dbconn); 

  while($data = mysql_fetch_array($result)){ 
    $string = $data['memo'];        // 대상 내용
    $lenstr = 71;        // 나타낼 글자수
    $sub_string = substr($string, 0, $lenstr, 'utf-8');
   
    $string_len = strlen($string);  // 대상 글자수를 계산
   
    for($k=0; $k<$lenstr-1; $k++) {
      if(ord(substr($string_len, $k, 1, 'utf-8'))>0) $k++;
    }
    if ($string_len > $lenstr) {
      $string_text=substr($sub_string, 0, $k, 'utf-8')."...";
//    $sub_string = $string_text;
    }
    else {
      $string_text=$string_len;
//    $sub_string = stripslashes($string_text);
    }
?>
<?php echo $string_text; ?>
<?php
  }
?>



2. 함수를 만들어서 사용하기
<?php
if (!function_exists('simpl_str')) {
    function simpl_str($string,$limit_length) {
        $string_length = strlen( $string );
        if ( $limit_length <= $string_length ) {
            $string = substr( $string, 0, $limit_length, 'utf-8' )."...";
            $han_char = 0;
            for ( $i = $limit_length-1; $i>=0; $i-- ) {
                $lastword = ord( substr( $string, $i, 1, 'utf-8' ) );
                if ( 127 > $lastword ) break;
                else $han_char++;
            }
            if ( $han_char%2 == 1 ) $string = substr( $string, 0, $limit_length-1, 'utf-8' ) . "...";
        }
        return $string;
    }
}
?>
사용법 : <?php echo simpl_str($data['title'],7); ?> 
해   설 : $data['title'] 을 7자에서 끊어서 그 후의 글자는 ... 으로 보입니다.



3. 바이트로 글자 자르기 (2010-02-03 추가)
<?php
// 글자 자르기(UTF-8 등의 바이트단위로 잘라야 하는 경우.)
if (!function_exists('str_cutting')) {
    function str_cutting($string, $len){ 
        if(strlen($string)<$len) {       
            return $string; //자를길이보다 문자열이 작으면 그냥 리턴 
        }
        else {
            $string = substr($string, 0, $len);
            $cnt = 0;
            for ($i=0; $i<strlen($string); $i++)
                if (ord($string[$i]) > 127) $cnt++; //한글일 경우 2byte 옮김,자릿수
            $string = substr($string, 0, $len - ($cnt % 3));
            $string.="..."; //커팅된 문자열에 꼬리부분을 붙여서 리턴
            return $string;
        }
    }
}

$str ="오늘은 기분좋은하루입니다";
echo $sbj = str_cutting($str,23);
?>
- 출력결과
오늘은 기분좋은...



4. 그누보드5 사용시
그누보드5/lib/common.lib.php 에 아래 함수가 추가되었습니다.

<?php
// UTF-8 문자열 자르기
// 출처 : https://www.google.co.kr/search?q=utf8_strcut&aq=f&oq=utf8_strcut&aqs=chrome.0.57j0l3.826j0&sourceid=chrome&ie=UTF-8
function utf8_strcut( $str, $size, $suffix='...' )
{
    if( function_exists('mb_strlen') && function_exists('mb_substr') ){
        
        if(mb_strlen($str)<=$size) {
            return $str;
        } else {
            $str = mb_substr($str, 0, $size, 'utf-8');
            $str .= $suffix;
        }

    } else {
        $substr = substr( $str, 0, $size * 2 );
        $multi_size = preg_match_all( '/[\x80-\xff]/', $substr, $multi_chars );

        if ( $multi_size > 0 )
            $size = $size + intval( $multi_size / 3 ) - 1;

        if ( strlen( $str ) > $size ) {
            $str = substr( $str, 0, $size );
            $str = preg_replace( '/(([\x80-\xff]{3})*?)([\x80-\xff]{0,2})$/', '$1', $str );
            $str .= $suffix;
        }
    }

    return $str;
}

$str ="오늘은 기분좋은하루입니다";
echo utf8_strcut($str, 23);
?>
- 출력결과
오늘은 기분좋은...


참고자료
http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040203&docId=69646273
http://deuxism.tistory.com/43

댓글목록

등록된 댓글이 없습니다.


Total 2,640건 125 페이지
  • RSS
기술자료 목록
160
ClassicASP   15596  2006-08-08 03:59 ~ 2020-01-16 18:42  
159
일반   12401  2006-08-06 22:47  
158
PHP   21217  2006-08-05 21:30 ~ 2022-03-03 13:46  
열람
PHP   17419  2006-08-05 14:45 ~ 2024-02-01 10:32  
156
HTML   14833  2006-08-04 23:39 ~ 2007-07-17 00:00  
155
PHP   17954  2006-08-04 22:47 ~ 2007-07-21 00:00  
154
Linux   15584  2006-08-04 19:25  
153
일반   16512  2006-08-04 09:25  
152
PHP   48730  2006-08-03 14:58 ~ 2024-02-20 11:14  
151
JavaScript   24345  2006-08-01 02:13  
150
Adobe   36021  2006-07-24 08:07  
149
JavaScript   15746  2006-07-22 15:27  
148
Adobe   14291  2006-07-22 11:27  
147
일반   16040  2006-07-22 10:59  
146
WindowsServer   24568  2006-07-22 07:55 ~ 2007-09-12 00:00  
145
etc쇼핑몰   26570  2006-07-21 22:48 ~ 2024-07-17 13:43  
144
메이크샵   14846  2006-07-21 22:43 ~ 2007-01-18 00:00  
143
제로보드   14045  2006-07-20 08:08  
142
메이크샵   11133  2006-07-21 22:43 ~ 2007-01-18 00:00  
141
HTML   16576  2006-07-17 19:05  

검색

해피정닷컴 정보

회사소개 회사연혁 협력사 오시는길 서비스 이용약관 개인정보 처리방침

회사명: 해피정닷컴   대표: 정창용   전화: 070-7600-3500   팩스: 042-670-8272
주소: (34368) 대전시 대덕구 대화로 160 대전산업용재유통단지 1동 222호
개인정보보호책임자: 정창용   사업자번호: 119-05-36414
통신판매업신고: 제2024-대전대덕-0405호 [사업자등록확인]  
Copyright 2001~2024 해피정닷컴. All Rights Reserved.