반응형
strpos()와 strrpos() 함수는 strstr()과 유사한 방식으로 동작한다.
하지만 strpos()의 실행 속도가 더 빠르기 때문에 strstr()대신 strpos()의 사용을 권장한다고 한다.
문장이나 특정 변수에서 특정 문자가 있는지 체크하려면 strpos(), strrpos() 함수를 사용하면 된다.
strpos([대상 문자열], [조건 문자열])
strpos([대상 문자열], [조건 문자열], [검색시작위치(숫자)])
strrpos([대상 문자열], [조건 문자열])
strrpos([대상 문자열], [조건 문자열], [검색시작위치(숫자)])
둘의 차이는 strpos 함수는 영문자의 대소문자를 구별하여 검색한다. 영문자 대소문자를 구별하지 않고 검색하려면 strrpos()함수를 사용하면 된다.
예시
stropos(), strrpos()함수는 문장이나 특정 변수에 해당 문자가 포함되어있으면 해당 위치를 알려준다.
echo strpos('abcdefghijk','c')
결과값은 2
문자의 첫글자를 0부터 카운트해서 해당 문자열의 위치를 알려준다.
if문을 활용하여 특정문자가 있는지 여부를 체크해보려면 사용하면 아래와 같다.
$value = "abcdefghijk";
if (strpos($value,'c')) {
//특정문자가 있는 경우
} else {
//그외
}
strpos는 해당 문자가 없다면 값을 반환하지 않기 때문에 false로 문자 여부를 체크할 수도 있다.
if (strpos($value,'c') == false) {
//특정문자가 없는 경우
}
* 값에 찾으려는 문자가 여러개 있으면 가장 먼저 있는 위치를 반환한다.
in_array()
위의 stropos(), strrpos() 함수는 특정 문자(한글자)의 위치를 반환해주기 때문에 두글자 이상의 단어를 포함하는지 체크가 어렵다. 이 경우에는 in_array()함수를 사용하면 된다.
in_array("apple", $value) 함수는 배열에 해당 값이 있으면 1을 반환한다.
$value = array("apple", "banna", "grape", "peach");
if(in_array("apple", $value)) {
echo "포함";
} else {
echo "미포함";
}
반응형
'개발 > php' 카테고리의 다른 글
[php] 에러메시지 나타내기 / php 오류 찾기 (3) | 2022.12.19 |
---|---|
[php] Warning: Illegal string offset 'file' 오류수정 (2) | 2022.11.10 |
[php] PHPExcel 엑셀로 데이터 다운받기 (2) | 2022.11.04 |
fullcalendar 이벤트 표기 안되는 오류 (Fatal error: Cannot redeclare class Event) (2) | 2022.08.14 |
[php] sql 구문으로 테이블 값 가져오는 방법 (2) | 2021.03.21 |
[php] sql 쿼리 반복문으로 데이터를 불러오는 여러가지 방법 (for문, while문) (2) | 2021.02.08 |
[php] 그누보드 보안 SSL 적용 (https 강제 리다이렉션하기) (2) | 2021.02.08 |
[php] ajax를 활용하여 좋아요 버튼 만들기 (2) | 2021.01.14 |