문자열에서 마지막 단어의 길이를 구하는 것은 PHP에서 자주 사용되는 문자열 처리 작업 중 하나입니다. 이 글에서는 strrpos와 substr 함수를 활용해 마지막 단어의 길이를 계산하는 방법을 예제 코드와 함께 살펴보겠습니다.
예제 코드
<?php
function last_word_len($my_string){
$position = strrpos($my_string, ' ');
if(!$position){
$position = 0;
} else {
$position = $position + 1;
}
$last_word = substr($my_string,$position);
return strlen($last_word);
}
print_r("마지막 단어의 길이는 ");
print_r(last_word_len('Hey')."\n");
print_r("마지막 단어의 길이는 ");
print_r(last_word_len('this is a sample')."\n");
?>
실행 결과
마지막 단어의 길이는 3
마지막 단어의 길이는 6
코드 설명
먼저 last_word_len이라는 이름의 PHP 함수를 정의합니다. 이 함수는 문자열을 매개변수로 받아 마지막 단어의 길이를 반환하는 역할을 합니다.
function last_word_len($my_string)
{
// ...
}
다음으로 strrpos 함수를 사용해 문자열 안에서 공백이 마지막으로 나타나는 위치를 찾습니다. 만약 공백이 존재하지 않아 위치 값이 거짓(false)이면 위치를 0으로 설정하고, 공백이 존재하면 1을 더해 공백 바로 다음 문자부터 시작하도록 처리합니다.
$position = strrpos($my_string, ' ');
if(!$position){
$position = 0;
} else {
$position = $position + 1;
}
이렇게 구한 위치를 기준으로 substr 함수를 호출해 마지막 단어에 해당하는 부분 문자열을 추출한 뒤, strlen 함수로 그 길이를 계산하여 반환합니다.
함수 외부에서는 서로 다른 두 개의 샘플 문자열('Hey', 'this is a sample')을 인자로 전달해 함수를 호출하고, 각각의 결과를 화면에 출력합니다. 첫 번째 문자열은 공백이 없는 단일 단어이므로 전체 길이인 3이 반환되고, 두 번째 문자열의 마지막 단어 'sample'은 6글자이므로 6이 반환됩니다.
참고 사항
문자열 끝에 불필요한 공백이 포함된 경우 결과가 달라질 수 있으므로, 필요하다면 rtrim 함수로 문자열 양쪽 끝의 공백을 먼저 제거한 후 처리하는 것이 안전합니다. 또한 explode로 문자열을 배열로 분리한 뒤 마지막 요소의 길이를 구하는 방법도 대안으로 활용할 수 있습니다.