본문 바로가기

PHP/PHP7 예비학교

[PHP] 문자열 자르기 - substr(), mb_substr()

substr()과 mb_substr()의 차이


문자열을 자르는 기능은 똑같습니다.

하지만, 인코딩 방식으로 인해 영문자를 자를 때는 상관없지만 한글을 자를 때는 '��'과 같은 알 수 없는 문자가 나옵니다.

 

<?php
$alpha = "abcdef";
$han = "ㄱㄴㄷㄹㅁㅂ";

echo substr($alpha, 2, 3);	// cde
echo substr($han, 2, 3);	// ��
?>

 

따라서, 한글을 자를 때는 mb_substr()의 인코딩 인자를 사용하여 사용합니다.

 

mb_substr() 사용법


mb_substr ( string $str , int $start [, int $length = NULL [, string $encoding = mb_internal_encoding() ]] ) : string

 

인자 위치 설명 디폴트
첫 번째($str) 자를 문자열 X
두 번째($strat) 시작 위치 X
세 번째($length) 길이 NULL(끝까지)
네 번째($encoding) 내부 문자 인코딩 mb_internal_encoding()
<?php
$han = "ㄱㄴㄷㄹㅁㅂ";

echo mb_substr($han, 2, 3, "UTF-8"); // ㄷㄹㅁ
?>

 

substr() 사용법


substr ( string $string , int $start [, int $length ] ) : string
인자 위치 설명
첫 번째($string) 자를 문자열
두 번쨰($start) 시작 위치
세 번째($length) 길이
<?php
$alpha = "abcdef";

echo substr($alpha, 2, 3); // cde
?>
반응형