PHP의 strchr() 함수는 하나의 문자열 안에서 다른 문자열이 처음으로 나타나는 위치를 찾는 데 사용됩니다. 일치 지점부터 문자열 끝까지의 부분을 반환하므로, 문자열에서 특정 키워드 이후의 내용을 추출할 때 유용하게 활용할 수 있습니다.
참고: 이 함수는 대소문자를 구분합니다. 따라서 "Text"와 "text"는 서로 다른 문자열로 취급되며, 대소문자를 구분하지 않고 검색하려면 stristr() 함수를 사용해야 합니다.
문법(Syntax)
strchr(str, search, before_search)
매개변수(Parameters)
str − 검색 대상이 되는 원본 문자열입니다.
search − 찾으려는 문자열입니다.
before_search − 선택 사항입니다.
TRUE로 설정하면, search 문자열이 처음 나타나기 이전까지의 부분을 반환합니다. 기본값은FALSE입니다.
반환값(Return)
strchr() 함수는 일치하는 지점부터 문자열 끝까지의 나머지 부분을 반환합니다. 만약 찾는 문자열이 존재하지 않으면 FALSE를 반환합니다.
또한 strchr()는 PHP에서 strstr() 함수의 별칭(alias)이므로, 두 함수는 완전히 동일하게 동작합니다.
예제 1: 기본 사용법
다음은 문자열에서 "text"가 처음 나타나는 지점부터 끝까지 출력하는 예제입니다.
<?php
echo strchr("Demo text!", "text");
?>
출력 결과
text!
"Demo " 부분은 버려지고, 일치 지점인 "text"부터 문자열 끝까지 그대로 반환된 것을 확인할 수 있습니다.
예제 2: before_search 옵션 활용
세 번째 매개변수에 TRUE를 전달하면, 검색 문자열이 나타나기 전의 부분만 얻을 수 있습니다.
<?php $str = "This is demo text!"; $findStr = "demo"; echo strchr($str, $findStr, true); ?>
출력 결과
This is
"demo"가 처음 등장하기 전까지의 문자열인 "This is "가 반환되었습니다. 이처럼 before_search 옵션을 사용하면 특정 구분자 앞쪽의 내용을 손쉽게 잘라낼 수 있습니다.
정리
strchr()는 문자열 내 첫 번째 일치 지점부터 끝까지 반환한다.- 대소문자를 구분하며, 구분하지 않으려면
stristr()을 사용한다. - 세 번째 인자를
TRUE로 설정하면 일치 지점 이전의 문자열을 반환한다. - 일치하는 문자열이 없으면
FALSE를 반환하므로, 조건문에서 활용 가능하다.