PHP/PHP7 예비학교
[PHP] 문자열 검색 - strpos(), mb_strpos()
SunPark
2020. 9. 13. 15:59
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
?>
영문자는 상관이 없지만 한글은 인코딩 방식을 설정해주지 않으면 확인할 수 없습니다.
반응형