Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP iconv_substr() 함수 완벽 가이드 – 문자열의 특정 부분 잘라내기

PHP에서 iconv_substr() 함수는 오프셋(offset)과 길이(length) 매개변수를 기준으로 지정된 문자열의 일부를 잘라내는 데 사용됩니다. 예를 들어, 문자열 "helloWorld"가 있고 이 중 (llowo) 부분만 잘라서 출력하고 싶다면, 2번째부터 5번째까지의 위치를 지정하여 해당 구간을 선택하면 됩니다.

문법(Syntax)

string iconv_substr(str $string, int $offset, int $length, str $encoding)

매개변수(Parameters)

iconv_substr() 함수는 네 가지 매개변수인 $string, $offset, $length, $encoding을 받습니다.

  • $string − 원본 문자열을 지정합니다.

  • $offset − $offset 값이 양수(또는 0 이상)이면, iconv_substr() 함수는 문자열 시작부터 offset 위치에 있는 문자를 기준으로(0부터 카운트) 잘라내기를 시작합니다. 반면 음수일 경우에는 문자열 끝에서 offset만큼 떨어진 위치부터 잘라냅니다.

  • $length − $length가 주어지고 양수라면, 반환되는 값은 offset 위치에서 시작하는 부분 문자열 중 최대 length개의 문자를 포함하게 됩니다.

  • $encoding − encoding 매개변수가 생략되거나 null이면, 문자열은 iconv.internal_encoding 설정값으로 인코딩된 것으로 간주됩니다.

반환값(Return Values)

iconv_substr() 함수는 offset과 length 매개변수로 지정된 문자열의 일부를 반환합니다. 만약 문자열의 길이가 offset보다 짧으면 False를 반환하고, 문자열의 길이가 정확히 offset과 같으면 null 또는 빈 문자열을 반환합니다.

예제 1

공백 없는 문자열에 iconv_substr() 함수 적용하기

<?php
    // HelloWorld 문자열 사용
    // 문자열에서 선택한 부분을 잘라내기 위해
    // iconv_substr 함수를 사용합니다.
    $string = iconv_substr("HelloWorld!", 2, 7, "UTF-8");

    // 2번째부터 7번째까지의 문자를 반환합니다.
    var_dump($string);
?>

출력 결과

string(7) "lloWorl"

위 예제에서는 공백 없이 붙어 있는 "HelloWorld!" 문자열에서 2번째 인덱스부터 7글자를 추출하여 "lloWorl"이 출력된 것을 확인할 수 있습니다.

예제 2

공백이 포함된 문자열에 iconv_substr() 함수 적용하기

<?php
    // Hello World! 문자열 사용
    // 문자열에서 선택한 부분을 잘라내기 위해
    // iconv_substr 함수를 사용합니다.
    $string = iconv_substr("Hello World!", 2, 7, "UTF-8");

    // 2번째부터 7번째까지의 문자를 반환합니다.
    var_dump($string);
?>

출력 결과

string(7) "llo Wor"

두 번째 예제에서는 공백이 포함된 "Hello World!" 문자열에 동일한 조건을 적용했습니다. 공백도 하나의 문자로 취급되기 때문에 결과에 공백이 그대로 포함되어 "llo Wor"가 출력됩니다.

마무리

iconv_substr() 함수는 멀티바이트 문자셋을 안전하게 처리할 수 있다는 점에서 일반 substr() 함수보다 유용합니다. 특히 UTF-8처럼 한 글자가 여러 바이트로 구성될 수 있는 인코딩 환경에서 한글이나 기타 비 ASCII 문자를 다룰 때 문자열이 깨지는 문제를 방지할 수 있으므로, 국제화(i18n) 작업 시 적극적으로 활용하는 것이 좋습니다.