[정보] 한글 문자열 자르기 PHP 함수
This post was written on February 14, 2023

PHP에서 한글 문자열 자르기는 여러 가지 이유로 생각보다 잘 안되는 경우가 많다. 아래 함수가 지금까지 사용한 것 중 가장 완벽한 함수이다.

  • 여기까지 왔다면 한글 문자열 자르기 함수의 다양한 고민에 대해 잘 알고 있을 것이다. 또한 더 좋은 것이 있다면 댓글로 답변을 해줄 것이라 굳게 믿는다.
  • 모두 chatGPT가 만들어준 함수이다.(함수 이름만 제외)

[1] PHP 한글 문자열 자르기 함수

	function cut_korean_string($str, $length) {
	    if (mb_strlen($str, 'utf-8') > $length) {
	        $str = mb_substr($str, 0, $length, 'utf-8');
	        $str .= '...';
	    }
	    return $str;
	}

[2] 자른 문자열의 마지막 문자가 2바이트인 경우 한글 문자열이 깨지지 않는 처리가 추가된 함수

        function cut_korean_string($str, $len, $suffix='...') {
	     $str = filter_var(trim($str), FILTER_SANITIZE_STRING);
	     $encoding = 'UTF-8';  // 한글 문자열은 대부분 UTF-8로 인코딩됩니다.
	     $str_len = mb_strlen($str, $encoding);
	     if ($str_len <= $len) {
	         return $str;
	     } else {
	         $cut_str = mb_substr($str, 0, $len, $encoding);
	         // 자른 문자열의 마지막 문자가 2바이트 문자인 경우 한글 문자열이 깨지지 않도록 처리합니다.
	         if (mb_strlen($cut_str, $encoding) < $str_len) {
	             $last_char = mb_substr($str, $len - 1, 1, $encoding);
	             if (mb_strlen($last_char, $encoding) === 2) { //===은 처음 본다.
	                 $cut_str = mb_substr($cut_str, 0, $len - 1, $encoding);
	             }
	         }
	         return $cut_str . $suffix;
	     }
          }

HS LOG List of ETC

Copyright © HS LOG
Published on February 14, 2023 Filed under: ETC; Tagged as: , , , , ,

No Comments

Thank you for visiting. If you leave a comment, I will not forget.

HS LOG List of ETC

 
The number of visitors for this post is 120 (measured by Jetpack).