본문 바로가기

PHP/PHP7 예비학교

[PHP] 문자열 검색 - strpos(), mb_strpos()

strpos()와 mb_strpos()는 문자열 검색을 하는 동일한 기능을 합니다.

하지만 멀티바이트 문자 검색에는 반드시 mb_strpos()를 사용해야합니다.

 

strpos()


strpos ( string $haystack , mixed $needle [, int $offset = 0 ] ) : int
인자 설명
$haystack 검색 문자열
$needle 검색 문장
$offset 시작 위치

 

<?php
echo strpos("one two three four five", "two");  // 4
echo strpos("one two three four five", "two", 5);  // X
?>

 

$offset에 5를 주게되면 "wo three four five"에서 "two"를 검색하기 때문에 반환값이 존재하지 않습니다.

 

mb_strpos()


mb_strpos(string $haystack , string $needle [, int $offset = 0 [, string $encoding = mb_internal_encoding() ]]) : int
인자 설명
$haystack 검색 문자열
$needle 검색 문장
$offset 시작 위치
$encoding 인코딩 방식
<?php
echo mb_strpos("one two three four five", "two");	// 4
echo mb_strpos("하나 둘 셋 넷 다섯", "셋");		// 0
echo mb_strpos("하나 둘 셋 넷 다섯", "셋", 0, 'UTF-8');	// 5
?>

 

영문자는 상관이 없지만 한글은 인코딩 방식을 설정해주지 않으면 확인할 수 없습니다.

반응형