2010년 2월 9일 화요일

[PHP] email 주소 보호 함수 hide_email()

다음은 봇이나 스파이더로 부터 웹사이트에 기재되어 있는 이메일 주소를

보호하는 PHP 함수입니다.

 

<코드>

 

function hide_email($email) { $character_set = '+-.0123456789@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz'; $key = str_shuffle($character_set); $cipher_text = ''; $id = 'e'.rand(1,999999999); for ($i=0;$i<strlen($email);$i+=1) $cipher_text.= $key[strpos($character_set,$email[$i])]; $script = 'var a="'.$key.'";var b=a.split("").sort().join("");var c="'.$cipher_text.'";var d="";'; $script.= 'for(var e=0;e<c.length;e++)d+=b.charAt(a.indexOf(c.charAt(e)));'; $script.= 'document.getElementById("'.$id.'").innerHTML="<a href=\\"mailto:"+d+"\\">"+d+"</a>"'; $script = "eval(\"".str_replace(array("\\",'"'),array("\\\\",'\"'), $script)."\")"; $script = '<script type="text/javascript">/*<![CDATA[*/'.$script.'/*]]>*/</script>'; return '<span id="'.$id.'">[javascript protected email address]</span>'.$script; }

 

<이용방법>

 

<?php echo hide_email('이메일주소'); ?>

 

이런식으로 코딩을 하면 출력되는 HTML 코드형식은 아래와 같습니다.

 

<SPAN id=e219467834>[javascript protected email address]</SPAN>
<SCRIPT type=text/javascript>/*<![CDATA[*/eval("var a=\"ZPwS6+GFyq7kMTm8tolQUcLj-vKi_fnIuA0ObH9WzE@Dg2sB5aehYrCJxd31p4XN.VR\";var b=a.split(\"\").sort().join(\"\");var c=\"p21pTp21pwDJr\";var d=\"\";for(var e=0;e<c.length;e++)d+=b.charAt(a.indexOf(c.charAt(e)));document.getElementById(\"e219467834\").innerHTML=\"<a href=\\\"mailto:\"+d+\"\\\">\"+d+\"</a>\"")/*]]>*/</SCRIPT>

 

HTML 출력형식은 매번 변경이 되기 때문에 봇이나 스파이더가 알아차리기 어렵습니다.

 

[출처]

http://www.maurits.vdschee.nl/php_hide_email/

 

0 개의 댓글:

댓글 쓰기