Programming/PHP
[PHP] #20 PHP 문자열 함수, 문자열 정리 및 필터링 함수 총정리 trim부터 htmlspecialchars까지
TOASTDEV
2025. 8. 9. 16:00
반응형
안녕하세요, 토스트데브입니다!
웹 개발에서 사용자의 입력을 처리하다 보면 공백, 특수문자, 태그 등 불필요한 부분을 정리하거나 필터링해야 할 때가 많습니다.
이번 글에서는 그럴 때 유용하게 사용할 수 있는 PHP 문자열 정리 및 필터링 함수들을 정리해보겠습니다.
✅ 1. trim() – 앞뒤 공백 제거
$str = " hello world ";
echo trim($str); // 출력: hello world
- 좌우 공백 제거
- 기본은 공백, 탭, 줄바꿈 문자 제거
- 인자를 주면 특정 문자 제거도 가능:
trim(",,apple,,", ","); → apple
🔹 관련 함수
- ltrim() : 왼쪽 공백만 제거
- rtrim() : 오른쪽 공백만 제거
✅ 2. htmlspecialchars() – HTML 특수문자 필터링
$str = "<script>alert('XSS');</script>";
echo htmlspecialchars($str);
// 출력: <script>alert('XSS');</script>
- XSS 공격 방지용 필수 함수
- <, >, ", ' 등을 HTML 코드로 변환해 브라우저가 실행하지 못하도록 함
- 폼 처리나 게시판 등 사용자 입력이 포함된 페이지에서 반드시 사용 권장
✅ 3. strip_tags() – HTML 태그 제거
$str = "<b>bold</b> text";
echo strip_tags($str); // 출력: bold text
- HTML 태그를 완전히 제거
- 옵션으로 허용할 태그 지정 가능
strip_tags($str, "<b>"); // <b>는 유지
✅ 4. filter_var() – 필터 기반 정리 및 검증
$email = " user@example.com ";
$cleaned = trim($email);
if (filter_var($cleaned, FILTER_VALIDATE_EMAIL)) {
echo "올바른 이메일입니다.";
}
- 다양한 필터 상수 제공: FILTER_SANITIZE_STRING, FILTER_VALIDATE_URL, 등
- 정리와 검증을 한 번에 처리할 수 있는 강력한 함수
✅ 5. str_replace() – 불필요 문자 직접 제거
$str = "010-1234-5678";
echo str_replace("-", "", $str); // 출력: 01012345678
- 하이픈, 특수문자 등 제거할 대상이 명확할 때 유용
- preg_replace()와 함께 정규식으로도 필터링 가능
🛡 보안 필터링 실전 예시
$name = "<b>홍길동</b>";
$comment = "<script>alert('x');</script>";
$safe_name = strip_tags($name); // 홍길동
$safe_comment = htmlspecialchars($comment); // XSS 방지
🧩 요약 정리표
함수 | 설명 | 사용 예시 |
trim() | 앞뒤 공백 제거 | 입력 필드 정리 |
htmlspecialchars() | 특수문자 필터링 | XSS 방지 |
strip_tags() | HTML 태그 제거 | 게시판, 댓글 |
filter_var() | 정리 + 유효성 검증 | 이메일, URL, 정수 등 |
str_replace() | 특정 문자 제거 | 전화번호, 하이픈 제거 |
#PHP문자열 #문자열정리 #htmlspecialchars #strip_tags #filter_var #trim #PHP보안 #입력값정제 #코딩입문 #PHP기초 #toastdev
반응형