PHP 주요레퍼런스/문자열 처리 함수

strpos

웹 개발자의 비상 2011. 7. 31. 22:39
int strpos(string haystack, mixed needle[, int offset])
대상 문자열에서 찾고자 하는 문자열이 처음으로 나타나는 위치를 반환한다.

 

인자로 전달받은 haystack에서 needle을 찾아 needle의 위치를 정수형 숫자로 반환한다.
haystack에서 needle이 처음에 존재하면 0을 반환하고 존재하지 않을 경우에는 false를 반환한다.

한편 offset은 검색을 수행할 범위를 저정하는 역할. 만일 값이 10이라면 haystack의 10번문자(11번째 문자) 이후에서부터 검색을 수행하며 10번 문자 이전의 위치에서 검색된 문자열은 무시하게 된다.

 

<?
$msg = "What a wonderful world!";

echo strpos($msg, "wo")."<br>"; 
// 7 ("wo"라는 문자열이 발견된 처음 위치를 반환)

echo strpos($msg, "wo", 10)."<br>";
// 17 (10번 문자 "d"부터 검색을 수행)

$search_string = "What";
$pos = strpos($msg, $search_string);
if($pos === false) {
    echo "검색어 '$search_string'이(가) 발견되지 않았습니다.";
} else {
    echo "검색어 '$search_string'이(가) 문자열 '$msg'의 ${pos}번 위치에서 발견되었습니다.";
}
/*
검색어 'What'이(가) 문자열 'What a wonderful world!'의 0번 위치에서 발견되었습니다.
"=="를 사용시 결과가 0일때 false 처리하므로 검색결과에 따른 코드 분기시 반드시 '===' 연산자를 사용해야 한다. 
*/
?>

 

함수의 실행결과 검색 문자열이 대상 문자열의 처음위치에서 발견되면 함수는 0을 반환하게 되는데 이 값을 '==' 연산자를 이용하여 false 값과 비교하게 되면 0이 boolean 값으로 형변환 될 경우 false로 변환되기 때문에 참으로 인식하게 된다

 

이런 경우 방지를 위해 변수값과 타입을 모두 비교하는 "===" 연산자를 사용하는 것이 좋다

 

 

 

728x90

'PHP 주요레퍼런스 > 문자열 처리 함수' 카테고리의 다른 글

stripos  (0) 2011.07.31
strrpos  (0) 2011.07.31
strrchr  (0) 2011.07.31
stristr  (0) 2011.07.31
strstr/strchr  (0) 2011.07.31