■ DB입력시 따옴표(')를 처리하는 addslashes, stripslashes 함수
PHP에서 문자열에 따옴표(큰 따옴표 : ", 작은 따옴표 : ')가 들어간 내용을 DB 값으로 집어 넣을때 addslashes, stripslashes 를 사용한다.
그런데 HTML에 직접 값을 넣지않고, PHP에서 바로 출력하는 경우 문제가 생겨 간단히 정리하고자 한다.
① addslashes : 문자열에 따옴표가 사입된 경우 문자열 앞에 역슬래시(\')를 붙인다.
② stripslashes : addslashes를 사용한 해당 문자열의 역슬래시를 제거한다.
단순하지만 아래 출력 코드와 같이 input 트그에 값을 넣눈경우가 있어 이렇게 저리해 보고자 ㅏ않다.
# 출력코드
quotation_marks.php |
<? // 테스트할 따옴표가 들어간 문구 $str = "Rockin' In Rhythm"; echo $str; echo "<br/><hr/><br/>"; // addslashes를 사용하여 따옴표 앞에 역슬래시를 붙임(\') echo "addslashes : ".addslashes($str); echo "<br/><hr/><br/>"; // stripslashes를 사용하여 따옴표 앞에 역슬래시를 제거(\') echo "stripslashes : ".stripslashes($str); echo "<br/><hr/><br/>"; // value값등에 넣을 경우 \"%s\" 식으로 따옴표를 감싸주어서 해결해야 한다. echo sprintf("<input type='text' value=\"%s\"/>", stripslashes($str)); ?> |
# 출력결과
위와같이 INPUTE 타입에 콤마를 삽입하는 경우 \"%s\" 로 감싸서 해결하였다.
단순한 실수 지만 순간 왜그러지 라고 계속 생각하느라 시간을 잡아 먹어서 이럻게 정리해 본다.
'PHP > PHP Programming' 카테고리의 다른 글
[PHP] QR코드 이미지 저장하고 띄우기 (0) | 2018.01.19 |
---|---|
[PHP] PHP QR Code 세팅하기 (0) | 2018.01.18 |
[PHP] 숫자 천단위 콤마 삽입(number_format, filter_var 함수) (0) | 2018.01.17 |
[PHP] GET방식으로 배열(Array) 전송하기 (0) | 2017.12.22 |
[PHP] Division By Zero 에러 (0) | 2016.01.26 |