코딩을 하다 보면 특정 문자열에서 내가 찾는 단어가 있는지 없는지 알아야 될 경우가 있습니다.
이럴 때 활용가능한 함수들이 여러 가지 있는데,
이 글에서는 그중에서도 처리 속도가 빠른 strpos() 함수에 대해서 알아보도록 하겠습니다.
strpos() 사용법
strpos($long_text, $search_text , 3);
$long_text - 기존 문자열
$search_text - 찾고 싶은 문자열
마지막 숫자는 검색을 시작할 위치입니다.
3이면 0123 해서 4번째부터 검색을 시작하는 것이 됩니다.
strpos() 예제
strpos()를 사용한 간단한 예제를 알아보겠습니다.
<?
$long_text = "a A b B c C d D";
$search_text = "b";
$result = strpos($long_text, $search_text);
?>
이 예제는 $long_text의 문자열 중에서 소문자 b 가 어디 있는지 찾는 예제입니다.
result의 값은 어떻게 나오는지 확인해 보겠습니다.
결과 값은 위와 같이 나옵니다.
strpos()는 대소문자 그리고 띄어쓰기를 구분하기 때문에 띄어쓰기 포함 4 가 결과 값이 되어 나옵니다.
또한 strpos()는 같은 문자열이 있다면 젤 앞에 있는 문자열의 위치만 반환합니다.
그러므로 같은 문자열이 두개 이상일 때는 사용하기 어렵습니다.
문자열 포함 유무 알아보기
$long_text = "abcdefg";
$search_text = "a";
$result = strpos($long_text, $search_text);
<div class="box">
기존 문자열 : <span><?=$long_text?></span><br/>
검색 할 문자열 : <span><?=$search_text?></span><br/>
<? if($result === false) { ?>
<span>'<?=$search_text?>'를 찾을 수 없습니다.</span>
<? } else { ?>
<span>해당 문자는 <?=$result+1?>번째 위치에 있습니다.</span>
<? } ?>
</div>
위 예제에서 첫 번째에 있는 a를 찾게 되면 값은 0이 나오고 0은 논리적으로 false 취급이 되기 때문에,
"==" 연산자 대신 "===" 연산자를 사용하여 구분해 주어야 합니다.
이후 result값이 false를 반환하면 문자열이 포함되어 있지 않다는 뜻입니다.
false가 아니라면 몇 번째 위치에 있는지 보여주도록 하겠습니다.
strpos()를 사용하여 문자열의 유무를 판별하고 그에 따라 결과 페이지가 달라지는 것을 확인할 수 있습니다.
위의 예제 처럼 특정 문자열이 있을 때, 해당 문자열을 다른 문자로 대체한다던지,
혹은 해당 문자열이 있을 때 특정 이벤트를 실행하는 코드를 작성해 볼 수 있겠습니다.
결론
이 글을 통해서 간단하게 문자열 포함 여부를 확인하는 방법을 알아보았습니다.
strpos()를 활용하여 결괏값을 처리할 때 필수적으로 들어가야 하는 내용이 들어있는지 아닌지 체크하고,
필수적으로 포함되어야 할 문자열을 추가해 주거나, 해당 문자열을 포함하여 들어온 사용자는 다른 페이지로 이동시키거나,
사용할 수 없는 문자열을 구분해 내는 등 여러 가지로 활용이 가능한 유용한 함수 중 하나입니다.
이 글을 통해서 strpos()의 개념과 활용방법에 대해 알고, 더욱 익숙해지는데 도움 되는 글이었길 바랍니다.
'코딩' 카테고리의 다른 글
[HTML/PHP] 간단한 게시판 만들기 #1 (DB 데이터 불러오기, 게시판 형식만들기) (33) | 2023.01.17 |
---|---|
[PHP] 전역변수, 완전 전역 ($GLOBALS, $_POST 등) (30) | 2023.01.06 |
[CSS] object-fit 컨테이너에 맞게 이미지 크기 조정하기 (34) | 2023.01.03 |
[jQuery] 간단한 예제로 ajax 사용해보기 (28) | 2022.12.30 |
[jQuery] 버튼 클릭 시 박스 숨기기, 보이기 (show, hide) (19) | 2022.12.27 |
댓글