freezner

[PHP] substr시 한글 글자수에 맞춰 자르기

영문과 한글은 1byte와 2byte로 byte 수가 다릅니다. 그리고 UTF-8 인코딩의 경우 3byte입니다.

이경우 단순히 substr를 사용한다면 1byte가 넘는 문자열은 깨지게 됩니다.

이런 문제를 바이트 체크하면서 문자열을 자르는 함수을 구현해 사용하는 경우가 간혹 있는데..

정신건강에 좋지 못합니다.

substr의 경우 mb_substr을 사용하면 간단하게 해결 됩니다. 다만 PHP 기본 함수는 아니고 mbstring 모듈을 추가해야 사용가능합니다. (요즘은 대부분 기본적으로 포함되어 있습니다.)

mbstring 모듈은 2byte 이상의 문자열에 대해 string 함수를 사용하기 위해 만들어졌습니다. 때문에 substr 말고도 그 밖에 많은 string 함수를 지원합니다.

더 자세한 내용은 php 공식 웹사이트에 정리되어 있으므로 굳이 여기에 모두 기재하지는 않겠습니다.

Exit mobile version