echo substr('Hello world!', 6, 5);
// 'Hello World!' 문자열의 7번 째부터 5개의 문자열을 추출함
결과 출력
substr(string $string, int $start, int|null $length = null): string|false
$originalString = 'Hello, world!';
$start = 7; // 시작 위치
$length = 5; // 추출할 길이

$extractedString = substr($originalString, $start, $length);

if ($extractedString != false) {
    echo '추출된 문자열: ' . $extractedString;
} else {
    echo '문자열 추출 실패';
}

// 출력: '추출된 문자열: world'
$originalString = 'Hello, world!';
$startNegative = -6; // 끝에서부터 6번째 문자부터 시작
$length = 5; // 추출할 길이

$extractedString = substr($originalString, $startNegative, $length);

echo '추출된 문자열: ' . $extractedString;
// 출력: '추출된 문자열: world'
// 첫 번째 예제
// "Hello world" 문자열의 0번째 인덱스부터 시작하여 -1번째 인덱스까지의 부분 문자열을 반환합니다.
// -1번째 인덱스는 문자열의 끝을 나타내므로, "Hello worl"을 출력합니다.
echo substr('Hello world', 0, -1); // 0번째 인덱스부터 시작하여 -1번째 인덱스까지 출력
// => "Hello worl"

// 두 번째 예제
// "Hello world" 문자열의 -9번째 인덱스부터 시작하여 -3번째 인덱스까지의 부분 문자열을 반환합니다.
// -9번째 인덱스는 문자열의 0번째 인덱스보다 작으므로, 문자열의 끝에서부터 인덱스를 계산합니다.
// -3번째 인덱스는 문자열의 6번째 인덱스를 나타내므로, "llo wo"를 출력합니다.
echo substr('Hello world', -9, -3); // -9번째 인덱스부터 시작하여 -3번째 인덱스까지 출력
// => "llo wo"

// 세 번째 예제
// "Hello world" 문자열의 0번째 인덱스부터 시작하여 -4번째 인덱스까지의 부분 문자열을 반환합니다.
// -4번째 인덱스는 문자열의 3번째 인덱스를 나타내므로, "Hello w"를 출력합니다.
echo substr('Hello world', 0, -4); // 0번째 인덱스부터 시작하여 -4번째 인덱스까지 출력
// => "Hello w"
echo substr('반갑습니다. 환영합니다.', 7, 5);
결과 출력 멀티바이트 문자의 중간에서 자를 경우 문자가 깨져 나올 수 있습니다.
echo mb_substr('반갑습니다. 환영합니다.', 7, 5);
결과 출력