ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • PHP 문자열 자르기
    PHP 2022. 8. 3. 15:05
    728x90
    반응형

    PHP 문자열 자르는 함수 

     

    1. substr(string $string, int $offset, ?int $length = null)

    version : (PHP 4, PHP 5, PHP 7, PHP 8)

    > offset :글자 시작위치이다. 음수일 경우 글자 끝에서부터 시작이다.
    > length : 글자의 종료길이이다. 음수일 경우, 글자 끝에서부터 종료이다. 

     

    PHP 버전이 낮은 곳에서 사용 할 수 있으나, 한글을 자를때 한글이 깨진다. 

    substr() 함수는 1byte 씩 자르나, 한글은 2byte이기 때문이다. 

     

    <?php
    
    echo substr('abcdef', 1);     // bcdef
    
    echo substr('abcdef', 0, 4);  // abcd
    
    echo substr('abcdef', -1, 1); // f
    
    // 2: 글자 2번째 위치인 C에서부터 , -1: 끝글자 f기준까지 (포함하지않음) 
    echo substr("abcdef", 2, -1);  // returns "cde"
    
    // -3: 글자 뒤에서 부터 3번째인 D에서부터, -1: 끝글자 f기준까지(포함하지 않음)
    echo  substr("abcdef", -3, -1); //de
    // 한글깨짐
    echo  substr("가나다라마바사", -3, -1);

     

    2. mb_substr( string $string, int $start, ?int $length = null, ?string $encoding = null)

    version : (PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

    > offset :글자 시작위치이다. 음수일 경우 글자 끝에서부터 시작이다.
    > length : 글자의 종료길이이다. 음수일 경우, 글자 끝에서부터 종료이다. 

    >encoding: 인코딩 옵션 

     

    PHP 버전이 높지 않아도 사용 가능하며, 한글도 깨지지 않는다. 다만, mb_string 이 설치되어 있어야 사용 가능하다.

    (mb_ 함수들 사용 가능한다. )

     

    <?php
    
    echo mb_substr("abcdef",1); //bcdef
    
    echo mb_substr('abcdef', 0, 4);  // abcd
    
    echo mb_substr('abcdef', -1, 1); // f
    
    // 2: 글자 2번째 위치인 C에서부터 , -1: 끝글자 f기준까지 (포함하지않음) 
    echo mb_substr("abcdef", 2, -1);  // returns "cde"
    
    // -3: 글자 뒤에서 부터 3번째인 D에서부터, -1: 끝글자 f기준까지(포함하지 않음)
    echo  mb_substr("abcdef", -3, -1); //de
    
    //한글 깨지지 않음.
    echo  mb_substr("가나다라마바사", -3, -1); //마바
    echo  mb_substr("가나다라마바사", 3, -1); //라마바

     

    3. iconv_substr( string $string, int $start, ?int $length = null, ?string $encoding = null)

    version : (PHP 5, PHP 7, PHP 8)

    > offset :글자 시작위치이다. 음수일 경우 글자 끝에서부터 시작이다.
    > length : 글자의 종료길이이다. 음수일 경우, 글자 끝에서부터 종료이다.

    >encoding: 인코딩 옵션 

     

    PHP 버전이 다른 함수에 비해 높다. 대신 설치할 필요없으며, 한글이 깨지지 않는다. 

    <?php
    
    echo  iconv_substr("가나다라마바사", -3, -1); //마바사
    echo  iconv_substr("가나다라마바사", 3, -1); //라마바
    728x90
    반응형

    'PHP' 카테고리의 다른 글

    PHP 배열 값 존재 여부  (0) 2023.08.05
    PHP 문자열 치환(변환) 함수  (0) 2022.07.29

    댓글

Designed by Tistory.