본문 바로가기

PHP/PHP Programming

[PHP] DB입력시 따옴표(')를 처리하는 addslashes, stripslashes 함수

반응형




■ 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\" 로 감싸서 해결하였다.

단순한 실수 지만 순간 왜그러지 라고 계속 생각하느라 시간을 잡아 먹어서 이럻게 정리해 본다.







반응형