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

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

본문 바로가기

사이트 내 전체검색

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

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 195건 9 페이지
  • RSS
기술자료 목록
35
PHP   13817  2007-10-02 08:50  
34
PHP   39163  2007-09-06 20:23  
33
PHP   17330  2007-08-15 19:39  
32
PHP   21747  2007-08-04 07:22 ~ 2020-02-08 20:56  
31
PHP   22330  2007-07-23 22:58 ~ 2019-01-11 23:03  
30
PHP   16799  2007-07-20 08:21  
29
PHP   21607  2007-06-28 17:40  
28
PHP   20343  2007-06-07 21:25 ~ 2024-03-19 17:26  
27
PHP   16656  2007-05-28 21:12  
26
PHP   21547  2007-05-05 04:48  
25
PHP   37525  2006-12-17 00:24  
24
PHP   27756  2006-11-04 07:22 ~ 2020-10-05 12:20  
23
PHP   24161  2006-10-28 11:21 ~ 2018-04-10 04:32  
22
PHP   21317  2006-09-30 18:43 ~ 2019-02-19 16:29  
21
PHP   21274  2006-08-05 21:30 ~ 2022-03-03 13:46  
열람
PHP   17489  2006-08-05 14:45 ~ 2024-02-01 10:32  
19
PHP   18014  2006-08-04 22:47 ~ 2007-07-21 00:00  
18
PHP   48820  2006-08-03 14:58 ~ 2024-02-20 11:14  
17
PHP   19547  2006-07-11 20:07 ~ 2024-10-18 09:37  
16
PHP   14131  2006-07-01 11:56 ~ 2023-09-18 08:16  

검색

해피정닷컴 정보

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

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