본문
strip_tags (PHP 4, PHP 5)
string strip_tags ( string $str [, string $allowable_tags ] )
주어진 str 에서 모든 HTML과 PHP 태그를 제거한 문자열을 반환합니다. 이 함수는 fgetss() 함수와 동일한 태그 제거 방식을 사용합니다.
+) 주의
- strip_tags()는 HTML의 유효성을 검사하지 않기 때문에, 부분적이거나 깨진 태그는 예상 외의 텍스트/데이터를 제거할 수 있습니다.
- 이 함수는 allowable_tags 를 사용하여 허용한 태그 안의 어떠한 속성도 변경하지 않습니다. 악성 사용자가 다른 사용자에게 보여지는 텍스트를 게시할 때 style이나 onmouserover 속성을 사용하여 악용할 수 있습니다.
예 :
<?php
$text = '<p>테스트 문단.</p><!-- 주석 --> <a
href="#fragment">다른 텍스트</a>';
echo strip_tags($text);
echo "\n";
// <p>와 <a>를 허용
echo strip_tags($text, '<p><a>');
?>
-------------------------------------------------------------------------------------------------
htmlspecialchars (PHP 4, PHP 5)
string htmlspecialchars ( string $string [, int $quote_style [, string $charset [, bool $double_encode ]]] )
어떤 문자들은 HTML에서 특별한 정의를 가지기에, 그 의미를 보존하려면, HTML 엔터티로 표현해야 합니다. 이 함수는 이러한 변환을 수행한 문자열을 반환합니다; 이 번역은 모든 웹 프로그래밍에서 매우 유용합니다. 모든 HTML 문자 엔터티를 번역해야 한다면, 이 함수 대신 htmlentities()를 사용하십시오.
이 함수로 게시판이나 방명록 등의 프로그램에서, HTML을 포함하는 사용자 입력 텍스트를 막을 수 있습니다.
변환이 일어나는 문자는:
- '&'(앰퍼샌드)는 '&'가 됩니다
- '"'(겹따옴표)는 ENT_NOQUOTES를 설정하지 않았을 때 '"'가 됩니다.
- '''(홑따옴표)는 ENT_QUOTES가 설정되었을 때만 '''가 됩니다.
- '<'(미만)은 '<'가 됩니다.
- '>'(이상)은 '>'가 됩니다.
+) 주의 : 이 함수는 위 목록 이외에는 아무 것도 번역하지 않는 점에 주의하십시오. 완전한 엔터티 번역을 위해서는, htmlentities()를 참고하십시오
------------------------------------------------------------------------------------------
텍스트 추출 함수
[code type=php] function strip_tags2(){ $search = array ("'<SCRIPT[^>]*?>.*?'si", // 자바 스크립트 제거 "'<[\/\!]*?[^<>]*?>'si", // HTML 태그 제거 "'<\!\-\-(.*)?\-\->'si", //주석제거 "'([\r\n])[\s]+'", "'&(quot|#34);'i", // HTML 엔티티 치환 "'&(amp|#38);'i", "'&(lt|#60);'i", "'&(gt|#62);'i", "'&(nbsp|#160);'i", "'&(iexcl|#161);'i", "'&(cent|#162);'i", "'&(pound|#163);'i", "'&(copy|#169);'i", "'&#(\d+);'e"); // php로 실행 $replace = array ("", "", "", "\\1", "\"", "&", "<", ">", " ", chr(161), chr(162), chr(163), chr(169), "chr(\\1)"); preg_replace($search,$replace,$data); }//end function
링크 추출 함수
[code type=php] function extract_link($file){ $data = file_get_contents($file); preg_match_all("/href=['\"]?([\?\&\=\/\.\_\:a-z0-9]+)['\"\s]?/i",$data,$out,PREG_SET_ORDER);//파라미터 사용할 경우 foreach($out as $key=>$val){ $link = $val[2]; if( ereg("\.gif|\.jpg|\.png|\.hwp|\.xls|\.swf|\.css|javascript:|mailto:",$link) ) continue; if( ereg("http://",$link ) ) if( !ereg($HOST,$link) ) continue; if( ereg("^..\/",$link) ){ $_link = $ROOT_URL."/".$link; } elseif ( ereg("^\/",$link) ) { $_link = $ROOT_URL.$link; } else { $_link = substr($lnk,0,strrpos($lnk,"/"))."/".$link; } $i++; if( !chkLink($_link) ) continue; $LINK[$i] = $_link; unset($text); extract_link($_link);//재귀호출 flush(); }//end of foreach }
관련링크
댓글목록
등록된 댓글이 없습니다.