php 에서 multibyte string 함수 없이 utf8 문자열 자르는 방법?

안녕하세요.

웹호스팅으로 php로 개발하고 있는데 서버에 multibyte string 함수가 설치가 안되어 있습니다.

characterset 을 utf8로 했기때문에 제목 긴 부분을 substr으로 자르려고 하는데 그냥 substr으로 자르면 이상하게 잘라지고, mb_substr을 설치가 안되어 있어 못쓰고..

multibyte string 함수 없이 utf8 문자열 자르는 좋은 방법 좀 알려주세요.

여러가지 찾아서 테스트해봤는데... 신통치가 않네요..

답변 1개

  • 투표순▲ 투표를 가장 많이 받은 순서로 정렬
  • 작성일순최신 작성된 순서로 정렬
(1)
제가 쓰고 있는 함수입니다.

저도 많이 찾아보고 제일 좋은 놈으로 골라서 사용중입니다.


function substr_utf8($str,$from,$len)
{
    return preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'. $from .'}'.'((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'. $len .'}).*#s','$1', $str);
}

정규표현식을 사용하는 방식입니다.

사용법은 기존 substr 함수와 동일합니다.

echo substr_utf8('안녕하세요.utf8문자열입니다.','3','9');

// 결과 : 세요.utf8문자


답변쓰기