[PHP] preg_match함수 알아보기
두비니
·2019. 12. 30. 14:34
[PHP] preg_match함수 알아보기
우선 preg_match는 필터링을 하는 함수입니다.
preg_match(정규식 표현 작성, 검색 대상 문자열, 배열 변수반환)
단, 변수는 반환될 때 배열식으로 반환되게 되며, 리턴값은 성공시 1, 실패시 0으로 리턴됩니다. 다음 예제식을 봅시다.
<?php
$text = 'My name is Tom';
$reg = preg_match('/\btom\b/i',$text,$matches);
var_dump($matches);
?>
위 식의 결과값은 다음과 같겠죠?
array(1) { [0]=> string(3) "Tom" }
물론 $reg값은 1이 되겠죠.
아, 참고로 왜 tom이 아니라 Tom이 검색되는지는 DB의 기본적인 성질때문인데, 대부분의 DB는 대소문자 구분을 하지 않기때문에 tom이 아닌 Tom, tOm, TOM등 모두 검색이 됩니다.
참고22) preg_match는 해당되는 문자열을 찾으면 바로 함수를 종료하는데, preg_match_all이라는 함수는 끝까지 값을 검사하기 때문에 전체 문자열을 필터링하고싶다면 preg_match_all함수를 이용하면 되겠죠?
preg_match를 쓸때 헷갈리는점은 한가지 정도? 있었던거 같네요.
우리가 C언어에서 개행문자(\n, \t, \a....)를 쓸때 앞에 \를 붙이는것처럼
preg_match함수의 정규식을 볼 때 안에 \가 있다면 그 뒤에있는 변수를 문자열로 보겠다는 의미로 그냥 전반적인 php에 대한 이야기이지만 취약점으로 많이 쓰이니 이점은 봐둘 만 한 것 같습니다.
'WEB' 카테고리의 다른 글
[PHP] strncmp 취약점(인증우회) (0) | 2021.03.21 |
---|---|
[web] Cookie vs Session, 그리고 HTTP (0) | 2021.01.04 |
[React] React에 대해서 (0) | 2019.11.17 |
React를 위한 Javascript 명령어들 (0) | 2019.11.16 |
[JavaScript] 에서의 배열[Array] (0) | 2019.10.14 |