본문 바로가기
언어/PHP

strpos 함수

by 코딩히어로 2022. 3. 28.
728x90

strstr이나 strlen 등 많은 문자열 관련 함수들을 C언어를 배워본 사람이라면

이미 많이 접해보았겠지만 strpos라는 함수는 아마 처음 보시는 분들이 많을 것으로 생각됩니다.

 

strpos 함수는 문자열이 처음 나타나는 위치를 찾아 반환하는 함수로 해당 위치를 정수 값으로 반환합니다.

 

int strpos( string $string1, mixed $needstring[, int $offset])

 

함수의 원형은 위와 같으며 인자의 의미는 다음과 같습니다.

 

  • string1 : 위치를 찾을 원형이 되는 문자열
  • needstring : 원형이 되는 문자열에서 검색할 문자열 또는 문자
  • offset : 선택적으로 사용하며 지정된 offset 이후로 string1에서 검색합니다.

 

반환값은 0부터 시작하고 만약 검색하는 needstring이 없다면 False를 반환합니다.

이때 논리 False로 취급할 수 있는 0을 반환할 수 있기 때문에 === 연산자를 사용해서 체크해야 합니다.

 

<?
    $string_test = 'aa123abcd';
    $find = 'c';
    
    $data = strpos($string_test, $find);
    
    if($data === false){
    	echo "문자열을 찾지 못했습니다.";
    }else{
    	echo "문자열을 찾았습니다.";
        echo $data;
    }

?>

 

=== 연산자를 사용해서 false 여부를 체크하고 결과를 출력합니다.

위 내용과 같지만 연산자를 다르게 사용할 수 있습니다.

 

<?
    $string_test = 'aa123abcd';
    $find = 'c';
    
    $data = strpos($string_test, $find);
    
    if($data !== false){
    	echo "문자열을 찾았습니다.";
        echo $data;
    }else{
    	echo "문자열을 찾지 못했습니다.";
    }

?>

 

!== 연산자를 통해 false를 체크하고 결과를 출력하였습니다.

마지막으로 offset을 사용하면 offset 앞을 무시하고 다음 위치부터 검색합니다.

 

<?
    $string_test = 'aa123abcd';
    $find = 'a';
    
    $data = strpos($string_test, $find,2);
    
    if($data !== false){
    	echo "문자열을 찾았습니다.";
        echo $data;
    }else{
    	echo "문자열을 찾지 못했습니다.";
    }

?>

 

위 코드를 실행하면 앞에 두 개의 a가 존재하지만 offset으로 무시하기 때문에

결과는 123뒤에 a의 위치가 반환 값으로 출력됩니다.

728x90
반응형

댓글