如今的垃圾邮件是越来越猖狂了,稍不小心就会遭致无穷尽的骚扰。尽管有如同Gmail这样的强大的反垃圾邮件的服务商,仍有不少漏网之鱼(每天躺在我收件箱里的垃圾邮件会有几十封)。
我们需要避免直接在网页中留下email地址,例如 test@test.com。下面有一些简单且行之有效的方法隐藏email地址。
方法一:使用图片显示email地址
Google里搜索一下“email图片”类似的关键词,就可以找到有很多网站生成这样的图片
这里有一个:http://www.makepic.com/email.php
方法二:隐藏 @ 符号
- 使用 @ 代替 @,(是@符号的html实体代码)显示出来的效果会是 test@test.com
- 使用 at 或者其他任意字符 代替 @,例如 test at test.com、test(at)test.com
方法三:使用脚本语言(php或JavaScript)隐藏email地址
代码一:PHP
function convert_email_adr($email) { $pieces = str_split(trim($email)); $new_mail = ''; foreach ($pieces as $val) { $new_mail .= '&#'.ord($val).';'; } return $new_mail; }
在页面中调用此函数
<?php echo convert_email_adr('user@email.com'); ?>
输出结果
user@email.com
代码二:JavaScript
<script type="text/javascript"> function create_mail(naam, domain, tld, label) { var mail; mail += '<a href="' + 'ma' + 'il' + 'to:' + naam; mail += '@' + mail + domain '.' + tld; mail += '">' + label + '<' + '/a>'; document.write(mail); } </script>
在页面中插入此代码调用
<script type="text/javascript">create_mail("user", "email", "com", "e-mail");</script>
代码三:
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"+d+""'; $script = "eval(\"".str_replace(array("\\",'"'),array("\\\\",'\"'), $script)."\")"; $script = '<script type="text/javascript"><!--mce:2--></script>'; return '<span id="'.$id.'">[javascript protected email address]</span>'.$script; }
在页面中调用此函数
<?php echo hide_email('test@test.com'); ?>
输出结果
<span id="e5119581">[javascript protected email address]</span><script type="text/javascript">/*<![CDATA[*/eval("var a=\"XyScbvBUW38fhasxldY_TQotLE5nCJDkgMVIq@KeArO9i20G1pHu.R4N6PZm7j-+wFz\";var b=a.split(\"\").sort().join(\"\");var c=\"72m7a72m7S9NR\";var d=\"\";for(var e=0;e<c.length;e++)d+=b.charAt(a.indexOf(c.charAt(e)));document.getElementById(\"e5119581\").innerHTML=\"<a href=\\\"mailto:\"+d+\"\\\">\"+d+\"</a>\"")/*]]>*/</script>
显示效果
test@test.com
还有一些其他的方法,例如利用css翻转字符。大家可以自己搜搜看。