-
PHP 문자열 자르기PHP 2022. 8. 3. 15:05728x90반응형
PHP 문자열 자르는 함수
1. substr(string $string, int $offset, ?int $length = null)
version : (PHP 4, PHP 5, PHP 7, PHP 8)
> offset :글자 시작위치이다. 음수일 경우 글자 끝에서부터 시작이다.
> length : 글자의 종료길이이다. 음수일 경우, 글자 끝에서부터 종료이다.PHP 버전이 낮은 곳에서 사용 할 수 있으나, 한글을 자를때 한글이 깨진다.
substr() 함수는 1byte 씩 자르나, 한글은 2byte이기 때문이다.
<?php echo substr('abcdef', 1); // bcdef echo substr('abcdef', 0, 4); // abcd echo substr('abcdef', -1, 1); // f // 2: 글자 2번째 위치인 C에서부터 , -1: 끝글자 f기준까지 (포함하지않음) echo substr("abcdef", 2, -1); // returns "cde" // -3: 글자 뒤에서 부터 3번째인 D에서부터, -1: 끝글자 f기준까지(포함하지 않음) echo substr("abcdef", -3, -1); //de // 한글깨짐 echo substr("가나다라마바사", -3, -1);
2. mb_substr( string $string, int $start, ?int $length = null, ?string $encoding = null)
version : (PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)
> offset :글자 시작위치이다. 음수일 경우 글자 끝에서부터 시작이다.
> length : 글자의 종료길이이다. 음수일 경우, 글자 끝에서부터 종료이다.>encoding: 인코딩 옵션
PHP 버전이 높지 않아도 사용 가능하며, 한글도 깨지지 않는다. 다만, mb_string 이 설치되어 있어야 사용 가능하다.
(mb_ 함수들 사용 가능한다. )
<?php echo mb_substr("abcdef",1); //bcdef echo mb_substr('abcdef', 0, 4); // abcd echo mb_substr('abcdef', -1, 1); // f // 2: 글자 2번째 위치인 C에서부터 , -1: 끝글자 f기준까지 (포함하지않음) echo mb_substr("abcdef", 2, -1); // returns "cde" // -3: 글자 뒤에서 부터 3번째인 D에서부터, -1: 끝글자 f기준까지(포함하지 않음) echo mb_substr("abcdef", -3, -1); //de //한글 깨지지 않음. echo mb_substr("가나다라마바사", -3, -1); //마바 echo mb_substr("가나다라마바사", 3, -1); //라마바
3. iconv_substr( string $string, int $start, ?int $length = null, ?string $encoding = null)
version : (PHP 5, PHP 7, PHP 8)
> offset :글자 시작위치이다. 음수일 경우 글자 끝에서부터 시작이다.
> length : 글자의 종료길이이다. 음수일 경우, 글자 끝에서부터 종료이다.>encoding: 인코딩 옵션
PHP 버전이 다른 함수에 비해 높다. 대신 설치할 필요없으며, 한글이 깨지지 않는다.
<?php echo iconv_substr("가나다라마바사", -3, -1); //마바사 echo iconv_substr("가나다라마바사", 3, -1); //라마바
728x90반응형'PHP' 카테고리의 다른 글
PHP 배열 값 존재 여부 (0) 2023.08.05 PHP 문자열 치환(변환) 함수 (0) 2022.07.29