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);
// 출력: &lt;script&gt;alert(&#039;XSS&#039;);&lt;/script&gt;

 

  • 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

반응형