[PHP] html tag 처리


/**
* tag를 부분허용하거나 모두 금지하도록 처리
* $memo: 처리할 변수
* $use_tag: 허용할 tag (,로 구분한 텍스트)
* $use_html: 1(허용)
*/
function htmlFilter($memo,$use_html=0,$use_tag='')
{
    if($use_html == 1) // html tag 허용시
    {
        $memo = str_replace("<", "&lt;", $memo); // 우선 tag를 제거
        $tag = explode(",", $use_tag);
        
        $tag_cnt = count($tag);
        for($i=0; $i < $tag_cnt; $i++)   // 허용된 tag만 사용가능토록 처리
        {
            $memo = eregi_replace("&lt;".$tag[$i]." ", "<".$tag[$i]." ", $memo);
            $memo = eregi_replace("&lt;".$tag[$i].">", "<".$tag[$i].">", $memo);
            $memo = eregi_replace("&lt;/".$tag[$i], "</".$tag[$i], $memo);
        }
  
    } else {   // html tag 불허시
        $memo = str_replace("<", "&lt;", $memo);
        $memo = str_replace(">", "&gt;", $memo);
    }
 
    return $memo;
}

//echo htmlFilter('<font color=ff0000>Hi</font>',1,'font');
//echo htmlFilter('<font color=ff0000>Hi</font>',0);





by 추경 | 2008/02/05 10:51 | 트랙백 | 덧글(2)
Commented by 매드캣 at 2008/02/05 10:58
지나가다 들렸습니다.^ ^

참고로 count($tag)는 for문에 돌리면 성능상 안좋습니다.

$tag_cnt = count($tag);

로 받아서 $tag_cnt를 for문에 돌리는 것이 빠르지요. 한두개 사용하면 별 차이는 못느낄지 모르지만 수십만건 단위로 넘어가면 이 하나의 처리로 상당한 시간을 단축할 수 있습니다.

정확한 차이는 $tag_cnt는 이미 count를 통해 계산된 숫자를 저장하고 있기 때문에 별다른 계산 없이 루프에 적용이 됩니다. 하지만 for문에 count를 사용할 경우에는 for문에 한번 돌때마다 count를 계산해 줘야 하기 때문에 속도에서 차이가 나는 것이지요.
Commented by 추경 at 2008/02/05 11:28
좋은 말씀 감사합니다.
코딩할때 count를 for문 밖으로 빼야지 하고 생각은 했는데 샘플로 만들다보니 그만
많이 신경을 못썼네요.
좋은 하루 되시길 ^^
※ 이 포스트는 더 이상 덧글을 남길 수 없습니다.
◀ 이전 페이지 다음 페이지 ▶


Since 2007.12
by 추경
이글루 파인더
카테고리
# 추경의 단상
# 웹프로그래밍
# 리뷰
# 스크랩
# 게임
# 방명록
최근 등록된 덧글
좋은 말씀 감사합..
by 추경 at 02/05
지나가다 들렸습니..
by 매드캣 at 02/05
메가곰돌이로 ㅇㅇ? ..
by 추경 at 01/31
제목을 추경이 아닌..
by 정호진 at 01/31
넌 나보로 어제 10개..
by 정호진 at 01/03
매일 하나씩 하면 ..
by 추경 at 12/21
울 대장 홈피군 영..
by 절대꼬봉 at 12/17
최근 등록된 트랙백
태그
mail 변조 hosts ALFTP 시간 tag spoofing mac rdate sendmail time.bora.net ultraedit 리눅스시간 SCSI SSH arpspoofing 하드디스크추가 울트라에디트 arp 스푸핑 알FTP html hotswap 필터링 hostname gateway 울트라에디터 UltraEditor foo pam_abl
포토로그
이글루 링크
링크사이트
rss

skin by teatime