Strings substr
(PHP 4, PHP 5, PHP 7, PHP 8)
substr — 문자열의 일부 반환
설명
substr(string $string
, int $offset
, ?int $length
= null
): string
offset
및 length
매개변수로 지정된 string
부분을 반환합니다.
매개변수
string
- 입력 문자열입니다.
offset
offset
이 음수가 아닌 경우 반환된 문자열은string
의offset
위치에서 시작하여 0부터 계산합니다. 예를 들어, 문자열 'abcdef
'에서 위치0
의 문자는 'a
'이고 위치2
의 문자는 'c
'입니다.offset
이 음수이면 반환된 문자열은string
끝에서offset
' 문자에서 시작됩니다.string
이offset
문자 길이보다 작으면 빈 문자열이 반환됩니다.예제 #1 음수
offset
사용<?php $rest = substr("abcdef", -1); // returns "f" $rest = substr("abcdef", -2); // returns "ef" $rest = substr("abcdef", -3, 1); // returns "d" ?>
length
length
가 지정되고 양수이면 반환된 문자열에는offset
에서 시작하는 최대length
의 문자가 포함됩니다(string
길이에 따라 다름).length
가 지정되고 음수이면string
끝에서 많은 문자가 생략됩니다(offset
이 음수일 때 시작 위치가 계산된 후).offset
이 이 잘림 또는 그 이상 위치를 나타내는 경우 빈 문자열이 반환됩니다.length
가 지정되고0
이면 빈 문자열이 반환됩니다.length
가 생략되거나null
이면offset
에서 시작하여 문자열 끝까지 부분 문자열이 반환됩니다.예제 #2 음수
length
사용<?php $rest = substr("abcdef", 0, -1); // returns "abcde" $rest = substr("abcdef", 2, -1); // returns "cde" $rest = substr("abcdef", 4, -4); // returns ""; prior to PHP 8.0.0, false was returned $rest = substr("abcdef", -3, -1); // returns "de" ?>
반환 값
string
의 추출된 부분 또는 빈 문자열을 반환합니다.
변경 로그
버전 | 설명 |
---|---|
8.0.0 | length 는 이제 nullable입니다. length 가 명시적으로 null 로 설정되면 함수는 이전에 빈 문자열을 반환했을 때 문자열 끝에서 끝나는 부분 문자열을 반환합니다. |
8.0.0 | 이 함수는 이전에 false 를 반환한 빈 문자열을 반환합니다. |
Examples
예제 #3 기본 substr() 사용법
<?php
echo substr('abcdef', 1); // bcdef
echo substr("abcdef", 1, null); // bcdef; prior to PHP 8.0.0, empty string was returned
echo substr('abcdef', 1, 3); // bcd
echo substr('abcdef', 0, 4); // abcd
echo substr('abcdef', 0, 8); // abcdef
echo substr('abcdef', -1, 1); // f
// Accessing single characters in a string
// can also be achieved using "square brackets"
$string = 'abcdef';
echo $string[0]; // a
echo $string[3]; // d
echo $string[strlen($string)-1]; // f
?>
예제 #4 substr() 캐스팅 동작
<?php
class apple {
public function __toString() {
return "green";
}
}
echo "1) ".var_export(substr("pear", 0, 2), true).PHP_EOL;
echo "2) ".var_export(substr(54321, 0, 2), true).PHP_EOL;
echo "3) ".var_export(substr(new apple(), 0, 2), true).PHP_EOL;
echo "4) ".var_export(substr(true, 0, 1), true).PHP_EOL;
echo "5) ".var_export(substr(false, 0, 1), true).PHP_EOL;
echo "6) ".var_export(substr("", 0, 1), true).PHP_EOL;
echo "7) ".var_export(substr(1.2e3, 0, 4), true).PHP_EOL;
?>
위의 예는 다음을 출력합니다.
1) 'pe' 2) '54' 3) 'gr' 4) '1' 5) '' 6) '' 7) '1200'
예제 #5 잘못된 문자 범위
유효하지 않은 문자 범위가 요청되면 substr()은 PHP 8.0.0부터 빈 문자열을 반환합니다. 이전에는 false
가 대신 반환되었습니다.
<?php
var_dump(substr('a', 2));
?>
PHP 8에서 위 예제의 출력:
string(0) "" ]
PHP 7에서 위 예제의 출력:
bool(false)
기타
- strrchr() - 문자열에서 마지막 문자 찾기
- substr_replace() - 문자열의 일부 내에서 텍스트 바꾸기
- preg_match() - 정규식 일치 수행
- trim() - 문자열의 시작과 끝에서 공백(또는 다른 문자) 제거
- mb_substr() - 문자열의 일부 가져오기
- wordwrap() - 문자열을 주어진 문자 수로 줄바꿈
- 문자에 의한 문자열 접근 및 수정