bad_tag_convert() 를 이용해 스크립트 안의 내용까지 삭제하기 정보
bad_tag_convert() 를 이용해 스크립트 안의 내용까지 삭제하기
본문
안녕하세요 오랫만에 질문 드립니다 ~~
common.lib.php
에 보면 view화면에 뿌려줄때
bad_tag_convert()를 이용해서
스크립트와 아이프레임 태그를 안의 내용과 태그를
문자그대로 표현하게 하는데요
이때 스크립트 태그 부터 스크립트 안의 내용, 스크립트 닫는 내용까지 모두 안보이게 하고 싶습니다..
를 써봤는데 아예 스크립트와 관련없는 내용까지 (div태그 내용까지)내용이 다 안보이더라구요
<scrpit 부터 /script> 까지 안보이면 됩니다.
계속 이 스크립트(구글광고, 퍼온 게시판전용 스크립트)까지 퍼와서 에디터로 등록하시는 분이 계서서 ㅠ.ㅠ
도움 부탁드립니다~
common.lib.php
에 보면 view화면에 뿌려줄때
bad_tag_convert()를 이용해서
스크립트와 아이프레임 태그를 안의 내용과 태그를
문자그대로 표현하게 하는데요
function bad_tag_convert($code)
{
return preg_replace("/\<([\/]?)(script|iframe)([^\>]*)\>/i", "<$1$2$3>", $code);
}
이때 스크립트 태그 부터 스크립트 안의 내용, 스크립트 닫는 내용까지 모두 안보이게 하고 싶습니다..
return preg_replace( '!<(script|javascript|jscript|iframe).*?</\1>|</?[\w]+.*?>!si','',$code);
를 써봤는데 아예 스크립트와 관련없는 내용까지 (div태그 내용까지)내용이 다 안보이더라구요
<scrpit 부터 /script> 까지 안보이면 됩니다.
계속 이 스크립트(구글광고, 퍼온 게시판전용 스크립트)까지 퍼와서 에디터로 등록하시는 분이 계서서 ㅠ.ㅠ
도움 부탁드립니다~
댓글 전체
return preg_replace("/\<([\/]?)(script|iframe)([^\>]*)\>/i", "", $code);
\ -> 역슬래쉬입니다.
\ -> 역슬래쉬입니다.
해보았지만 ㅠ.ㅠ <script> </script> 와 같이 태그만 제거되고 안의 내용이 제거가 안되네요..
return preg_replace( '!<(script|javascript|jscript|iframe).*?</\1>!si','',$code);
책찾아 해결 했습니다만 맞게 돌아가고있는 것인지 모르겠네요...
제대로 한것인지 알려주시는 분께(조금만 설명을.. 특히 !si 부분) 포인트 드릴께요
책찾아 해결 했습니다만 맞게 돌아가고있는 것인지 모르겠네요...
제대로 한것인지 알려주시는 분께(조금만 설명을.. 특히 !si 부분) 포인트 드릴께요
!<(script|javascript|jscript|iframe)
=> <script
<javascript
<javascript
<iframe
으로 시작하고
.*?
=>중간에 뭐든 나올수도 있고 안나올 수도 있고.
</\1>
=>
</script>
</jframe>
(script|javascript|jscript|iframe)
이 4개중에서 하나로 끝나는 부분을 없애라는 부분입니다.
---
! 는 약간 이상한 부분인데요,
원래는,
preg_replace("//", '', $code);
이렇게 // 안에 표현을 넣는 부분인데. 그게 !로 바꿔 진듯요.
나머지 si 는
i 는 case insensitive .. 대소문자 구별하지 말라는 것이고.
s 는 모르겠네요. 첨쓰는 구분자이고.
이외에도 gim많이 씁니다.
http://koxo.com/lang/js/object/RegExp.html
http://www.php.net/manual/en/function.preg-match.php
참고하세요
=> <script
<javascript
<javascript
<iframe
으로 시작하고
.*?
=>중간에 뭐든 나올수도 있고 안나올 수도 있고.
</\1>
=>
</script>
</jframe>
(script|javascript|jscript|iframe)
이 4개중에서 하나로 끝나는 부분을 없애라는 부분입니다.
---
! 는 약간 이상한 부분인데요,
원래는,
preg_replace("//", '', $code);
이렇게 // 안에 표현을 넣는 부분인데. 그게 !로 바꿔 진듯요.
나머지 si 는
i 는 case insensitive .. 대소문자 구별하지 말라는 것이고.
s 는 모르겠네요. 첨쓰는 구분자이고.
이외에도 gim많이 씁니다.
http://koxo.com/lang/js/object/RegExp.html
http://www.php.net/manual/en/function.preg-match.php
참고하세요
감사합니다. 아주 많이 도움이 되었어요^^