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
?>
영문자는 상관이 없지만 한글은 인코딩 방식을 설정해주지 않으면 확인할 수 없습니다.
반응형
'PHP > PHP7 예비학교' 카테고리의 다른 글
[PHP] 발견된 위치부터 문자열 출력 - stristr(), mb_stristr() (0) | 2020.09.13 |
---|---|
[PHP] 문자열이 포함되어 있는 개수 확인 - substr_count(), mb_substr_count() (0) | 2020.09.13 |
[PHP] 문자열 비교하기 - ===, strcmp(), strcasecmp(), strncmp() (0) | 2020.09.13 |
[PHP] HTML 태그 제거 - strip_tags() (0) | 2020.09.13 |
[PHP] 공백 제거 - trim(), ltrim(), rtrim() (0) | 2020.09.13 |