ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [PHP] 따옴표 처리 함수 <addslashes/stripslashes>
    오늘의 IT/PHP 2023. 2. 7. 23:38
    반응형

    addslashes(이스케이프 할 문자열)

    홑따옴표('), 겹따옴표("), 백슬래시(\), NUL(NULL 바이트) 문자 [ : 보통 DB 질의 등에서 처리할 필요가 있는 문자] 앞에 백슬래시를 붙인 문자열을 반환함

    PHP는 기본적으로 magic_quotes_gpc 설정이 ON 임

    magic_quotes_gpc 설정이란?

    GPC (Get/Post/Cookie) 작동의 magic_quotes 상태를 설정함
    magic_quotes가 on이면, 모든 ' (작은따옴표), " (큰 따옴표), \ (백슬래시), NUL은 자동적으로 백슬래시로 이스케이프 됨

    해당 설정을 통해 이스케이프 된 문자열이 addslashes를 사용하면 2번 이스케이프 됨 -> 문제 있음(오류 삐삐)

    해당 설정이 켜져 있는지는 get_magic_quotes_gpc() 함수로 확인 가능!!

    $str = "Hi I'm 대장";
    echo addslashes($str);

    결과

    Hi I\'m 대장

     

    stripslashes(백슬래시 처리를 제거할 문자열).

    백슬래시 처리를 제거한 문자열을 반환

    magic_quotes_sybase가 켜져 있으면, 백슬래시는 처리되지 않고, 작은따옴표를 하나로 교체함.

    magic_quotes_sybase 설정이란?

    sybase (SAP에서 제공하는 관계형 데이터베이스) 사용자의 정상적인 DB 접속을 위해 만들어짐
    해당 기능은 magic_quotes_gpc 설정이 켜져 있어도 작동하지 않음

    \' -----> '  로 반환

    * 이중 백슬래시라면 \\    ----> \ 로 반환함

    $str = "Hi I\'m 대장";
    echo stripslashes($str);

    결과

    Hi I'm 대장

     

    반응형
Designed by Tistory.