html 태그 없애기
♨ 카랜더 일정 :
링크
첨부
컨텐츠 정보
- 14,635 조회
본문
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> 를 제외하고 태그를
없애도록 함.
깔끔하게 모든 태그를 없애지는 못하는거 같으나 많은 시행착오를 거쳐서
프로그램 한다면 왠만한 예외처리는 가능할것입니다.
\n
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> 를 제외하고 태그를
없애도록 함.
깔끔하게 모든 태그를 없애지는 못하는거 같으나 많은 시행착오를 거쳐서
프로그램 한다면 왠만한 예외처리는 가능할것입니다.
\n
[이 게시물은 관리자님에 의해 2013-11-18 21:29:50 11.H_BBS에서 이동 됨]
뷰PDF 1,2
office view
관련자료
댓글목록
등록된 댓글이 없습니다.