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
?>
반응형
'PHP > PHP7 예비학교' 카테고리의 다른 글
[PHP] 공백 제거 - trim(), ltrim(), rtrim() (0) | 2020.09.13 |
---|---|
[PHP] 대문자 변환 - strtoupper() 와 소문자 변환 - strtolower() (0) | 2020.09.13 |
[PHP] 문자열 길이 구하기 - mb_strlen(), strlen() (0) | 2020.09.13 |
[PHP] 형식 문자열 - printf(), sprintf(), vprintf() 그리고 number_format() (0) | 2020.09.12 |
[PHP] 문자열에서의 큰 따옴표(")와 작은 따옴표(') (0) | 2020.09.12 |