테스트 사이트 - 개발 중인 베타 버전입니다

php preg_replace 함수를 이용한 정규식 태그 필터링 예제

데모 - http://demo.widgets.co.kr/?c=64/81/82

매뉴얼 - http://kr2.php.net/manual/kr/function.preg-replace.php



iframe 제거
$STRING=preg_replace("!<iframe(.*?)<\/iframe>!is","",$STRING);

script 제거

$STRING=preg_replace("!<script(.*?)<\/script>!is","",$STRING);

meta 제거
$STRING=preg_replace("!<meta(.*?)>!is","",$STRING);

style 태그 제거

$STRING=preg_replace("!<style(.*?)<\/style>!is","",$STRING);

&nbsp;를 공백으로 변환

$STRING=str_replace("&nbsp;"," ",$STRING);

연속된 공백 1개로
$STRING=preg_replace("/\s{2,}/"," ",$STRING);

태그안에 style= 속성 제거
$STRING=preg_replace("/ style=([^\"\']+) /"," ",$STRING); // style=border:0... 따옴표가 없을때
$STRING=preg_replace("/ style=(\"|\')?([^\"\']+)(\"|\')?/","",$STRING); // style="border:0..." 따옴표 있을때

태그안의 width=, height= 속성 제거
$STRING=preg_replace("/ width=(\"|\')?\d+(\"|\')?/","",$STRING);
$STRING=preg_replace("/ height=(\"|\')?\d+(\"|\')?/","",$STRING);

img 태그 추출 src 추출
preg_match("/<img[^>]*src=[\"']?([^>\"']+)[\"']?[^>]*>/i",$STRING,$RESULT);
preg_match_all("/<img[^>]*src=[\"']?([^>\"']+)[\"']?[^>]*>/i",$STRING,$RESULT);

호스트 추출

preg_match("/^(http:\/\/)?([^\/]+)/i","http://www.naver.com/index.html",$matches);
$host = $matches[2];
echo$matches[0]."<br>";
echo$matches[1]."<br>";
echo$matches[2]."<br>";

출력 - 
http://www.naver.com
http://
www.naver.com

데모 - http://demo.widgets.co.kr/?c=64/81/82 

 

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

게시글 목록

번호 제목
17523
17516
17515
17514
17498
17493
17490
17487
17485
17481
17478
17477
17474
17473
17472
17470
17469
17463
17462
17461
17460
17458
17457
17454
17453
17448
17447
17446
17445
17444