알찬정보 툰코 개발 트렌드 이슈 코딩

알찬정보 툰코 개발 트렌드 이슈 코딩

  • [PHP]정규표현식, preg_match

    hellowsydney8010

    2024년 01월 29일
    개발지식, 미분류, 생활지식
    [PHP]정규표현식, preg_match

    <?php
    preg_match(‘/대조 할 문자/’,’입력한 문자’, $matches); 

    ?>

    예를 들어 나는 a를 필터링하고 싶다하면

    ‘/a/’ 이렇게 되겠죠?

    this를 필터링하고 싶다하면

    ‘/this/’ 이렇게 되겠죠?

    그럼 만약에 특수문자를 필터링하고 싶을땐요?

    ‘ 이거 필터링 하고싶은데요?

    그럴땐 특수문자 앞에 \를 붙이면 됩니다.

    ‘/\’/’

    근데 가끔씩 ‘/admin/’i 이렇게

    i가 붙을수가 있습니다

    이 경우는 대소문자를

    구분하지 않는다는 뜻입니다!

    입력한 문자의 경우는

    일반적으로 저희가 GET방식이든

    POST방식이든

    사용자가 input을 하면 특정 변수에 담잖아요

    ex) $a=$_GET[‘id’];

    이렇게요 get 방식으로 id값을 php변수 a에 넣는거요!

    만약에 저희가 get방식으로 id에 1234를 넣었으면

    $a=1234가 되겠죠?

    그래서 일반적으로 사용자 input이 담긴

    php변수를 저 위치에 적어요!

    좀 더 구조를 갖추면 이렇게 됩니다.

    preg_match(‘/\’/’,’$a’,$match);

    이렇게 되면 $a변수에 ‘가 있으면 감지되겠죠?

    마지막으로 $match입니다

    여기 match 변수에는 뭐가 담기냐?

    바로 사용자가 설정한 값과 input값이 일치하는 경우

    그 값을 $match에 배열형태로 저장합니다.

    쉽게 얘기해서 검거당한 문자열은

    $match에 기록된다!

    예를들어 preg_match(‘/abcd/’,$a,$match)

    $a에 있는 값이 acety이면

    a랑 c가 match안에 배열형태로 저장됩니다.

    마지막으로 이 함수는

    하나라도 문자열이 검거가 되면 1을 반환하고

    하나라도 검거가 안되면 0을 반환합니다

    그래서 제가 본 문제들은 이런 형태로 되어 있었습니다!

    if(preg_match(‘/\’/’,$id,$match))

    {

    echo “no hack”;

    exit();

     }

    만약 $id의 입력값에 ‘가 있으면

    no hack이라고 출력하고 php가 종료됩니다.

    물론 문자열 필터링 할 때 이거 말고도

    몇 가지 함수들이 더 있긴 합니다!

    str_replace -> 다른 문자로 바꿔줌

    preg_replace -> 다른 문자로 바꿔줌

    dev, 개발, 개발자, 개발정보, 스크립트, 웹개발
    다음
    이전

    답글 남기기 응답 취소

    이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Subscribe to Our Newsletter!

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Subscribe Now

Copyright © 2023 Sydney Note

Design by ThemesDNA.com