PHP의 similar_text() 함수는 두 문자열 간의 유사도를 계산하는 데 사용됩니다. 이 함수는 내부적으로 올리버(Oliver) 알고리즘을 기반으로 동작하며, 두 문자열에서 일치하는 문자의 개수를 구하고 필요하다면 유사도를 백분율(%)로까지 확인할 수 있습니다.
문법(Syntax)
similar_text(str1, str2, percent)
매개변수(Parameters)
str1 − 비교 대상이 되는 첫 번째 문자열입니다.
str2 − 비교 대상이 되는 두 번째 문자열입니다.
percent − 선택 사항으로, 두 문자열의 유사도를 백분율 형태로 저장할 변수 이름을 지정합니다.
반환값(Return)
similar_text() 함수는 두 문자열에서 서로 일치하는 문자의 개수를 정수 형태로 반환합니다.
예제
다음은 "mobile"과 "mobility"라는 두 문자열을 비교하는 기본적인 예시입니다.
<?php
$res = similar_text("mobile", "mobility", $percent);
echo "Count of similar characters : $res\n";
?>
출력 결과
Count of similar characters : 5
위 예제에서 두 문자열은 앞부분의 "mobil"에 해당하는 5개의 문자가 일치하므로 결과값으로 5가 반환됩니다. 만약 세 번째 매개변수인 $percent 변수를 함께 출력하면, 두 문자열의 유사도가 백분율 값으로 표시되어 문자열이 얼마나 비슷한지 더 직관적으로 파악할 수 있습니다.
예제 2: 빈 문자열 비교
이번에는 빈 문자열 두 개를 비교했을 때 어떤 결과가 나오는지 살펴보겠습니다.
<?php
similar_text("", "", $res);
echo $res;
?>
출력 결과
0
비교할 문자열이 모두 비어 있기 때문에 일치하는 문자가 존재하지 않으며, 따라서 결과값으로 0이 반환됩니다. 이처럼 similar_text() 함수는 입력 문자열이 유효하지 않은 경우에도 오류 없이 안전하게 처리됩니다.