PHP | 입력값의 HTML 태그 없애기
작성자
html 태그 없애기 (php 메뉴얼을 참고)
일반적으로 게시판 이나 방명록등의 경우 thml 태그를 허용할것인지 아닌지 선택하는 경우가 있다 이때 태그를 허용하는 경우에는 문제가 없지만 허용하지 않는경우에는 htmlspecialchars() 함수를 사용합니다

예) 
<?
     $a = "<a href='http://www.daum.net'>여기</a>";  <-- 입력값
     $a = htmlspecialchars($a);
     echo $a;
?>
로 출력하면 링크를 거는 태그까지 표시가 되어져 html 태그를 아는사람도 보기가 복잡해져 버리는 경우가 많습니다
굳이 이렇게 하는 이유는 자바스크립트 등의 사용억제등의 목적이 있는데 이것 보다는 html 태그자체를 없앤다면 태그가 작동안하게 하더라도 읽는데 더욱 깔끔할것입니다.

예)
<?
     $a = $a = "<a href='http://www.daum.net'>여기</a>";  <-- 입력값
     $a = strip_tags($a);
     echo $a;
?>

<a href='http://www.daum.net'> 과 </a> 를 제외한 여기 라는 글자만 출력될것입니다. 한결 읽기가 편하고 링크는 물론 작동하지 않습니다.

strip_tags()
일단 메뉴얼의 내용부터 보겠습니다. (본사이트의 메뉴얼에서 볼수 있습니다)

메뉴얼 ========================================================
카테고리    Function(함수) 》 S-Z 함수 》 String
간단설명   문자열로 부터 HTML 태그와 PHP 태그를 없앤다
사용가능 버전   (PHP 3>= 3.0.8, PHP 4 >= 4.0b2)
사 용 법    string strip_tags (string str [, string allowable_tags])  
===============================================================

첫번째 파라미터는 입력값입니다. 두번째는 선택인데, 없애지 않을 테그를 넣으면 되겠습니다.
위 구문에서 $a = strip_tags($a,"<a>");  처럼 한다면 <a> 태그는 허용되고 나머지는 무시되어 없어집니다.
두개를 넣고자 한다면 $a = strip_tags($a,"<a>,<b>"); 처럼 <a> 태그 <b> 태그가 남겨 질수 있습니다. 

이처럼 게시판등에서 그림이나 링크 를 허용하고 나머지는 없앤다는 등의 선택이 가능합니다.

추가 =============================================================
참고로 같은 기능의 정규표현식으로 동일한 효과를 냅니다
<?
     $a = $userMessage = ereg_replace('<([^>]|\n)*>', '', $a); 
?>
<a> 태그만 하용할경우
<?
     $a = ereg_replace('<([^/a]|([/][^a]))([^>]|\n)*>', '', $a);
?>

문제 =============================================================
입력값에 있는 태그가 두줄에 걸쳐서 이루어 질경우 제대로 제거를 하지 못하는 문제가 있습니다. 이럴때에는 입력값을 모두 붙여주어서 태그를 없애야 깨끗하게 처리가 됩니다.

$a = "<a
href='http://www.daum.net'>여기</a>";
$a = str_replace("\n", "", $a); <--- 줄바꿈 없앰
$a = strip_tags($a, "<br>"); <--- 줄바꿈 태그 <br> 를 제외하고 태그를 없애도록 함.
깔끔하게 모든 태그를 없애지는 못하는거 같으나 많은 시행착오를 거쳐서 프로그램 한다면 왠만한 예외처리는 가능할것입니다.

[출처] 입력값의 HTML 태그 없애기|작성자 유달리

댓글목록

등록된 댓글이 없습니다.

총 게시물 93 개, 페이지 6 RSS
제목 작성자
PHP txt파일 읽어오기 H
PHP xml로 출력하기 H
PHP xml로 저장하기 H
PHP utf-8 문자열 자르기 함수 mb_strimwidth H
PHP rss리더기 H
PHP PHP 문서를 MS-Office 파일 문서로 변환 H
PHP parse_url함수 사용으로 url찾기 H
PHP ImageCopyResized,imagecopyresampled - 비슷한기능&&나은퀄리티 H
PHP html문서로 저장 H
PHP 입력값의 HTML 태그 없애기 H
PHP 문자셋 변환(euc-kr ->utf-8 ) H
PHP 파일처리함수 H
PHP 문자열처리함수 H
PHP 난수 생성(랜던생성) H
PHP 디렉토리 폴더만보기 H
게시물 검색