개발/php
[php] strpos(), strrpos(), in_array() 특정 문자열 검색하기
HHHONG
2021. 5. 26. 17:36
반응형
strpos()와 strrpos() 함수는 strstr()과 유사한 방식으로 동작한다.
하지만 strpos()의 실행 속도가 더 빠르기 때문에 strstr()대신 strpos()의 사용을 권장한다고 한다.
문장이나 특정 변수에서 특정 문자가 있는지 체크하려면 strpos(), strrpos() 함수를 사용하면 된다.
strpos([대상 문자열], [조건 문자열])
strpos([대상 문자열], [조건 문자열], [검색시작위치(숫자)])
strrpos([대상 문자열], [조건 문자열])
strrpos([대상 문자열], [조건 문자열], [검색시작위치(숫자)])
둘의 차이는 strpos 함수는 영문자의 대소문자를 구별하여 검색한다. 영문자 대소문자를 구별하지 않고 검색하려면 strrpos()함수를 사용하면 된다.
예시
stropos(), strrpos()함수는 문장이나 특정 변수에 해당 문자가 포함되어있으면 해당 위치를 알려준다.
echo strpos('abcdefghijk','c')
결과값은 2
문자의 첫글자를 0부터 카운트해서 해당 문자열의 위치를 알려준다.
if문을 활용하여 특정문자가 있는지 여부를 체크해보려면 사용하면 아래와 같다.
$value = "abcdefghijk";
if (strpos($value,'c')) {
//특정문자가 있는 경우
} else {
//그외
}
strpos는 해당 문자가 없다면 값을 반환하지 않기 때문에 false로 문자 여부를 체크할 수도 있다.
if (strpos($value,'c') == false) {
//특정문자가 없는 경우
}
* 값에 찾으려는 문자가 여러개 있으면 가장 먼저 있는 위치를 반환한다.
in_array()
위의 stropos(), strrpos() 함수는 특정 문자(한글자)의 위치를 반환해주기 때문에 두글자 이상의 단어를 포함하는지 체크가 어렵다. 이 경우에는 in_array()함수를 사용하면 된다.
in_array("apple", $value) 함수는 배열에 해당 값이 있으면 1을 반환한다.
$value = array("apple", "banna", "grape", "peach");
if(in_array("apple", $value)) {
echo "포함";
} else {
echo "미포함";
}
반응형