2011-04-10 42 views
5

你們可以發佈電子郵件鏈接垃圾郵件保護(在PHP或JavaScript)的方法?良好的電子郵件鏈接保護方法

基本上我想提出一個「電子郵件地址」鏈接的網頁上,像

<a href="mailto:[email protected]">E-mail me</a>

,但我不想讓垃圾郵件機器人把它撿起來,然後我發垃圾郵件與陰莖增大電子郵件:)

到目前爲止,我發現一個JavaScript混淆這裏:http://www.jottings.com/obfuscator/不知道它是怎麼雖然有效..

回答

4

這裏是一個related question和接受的答案涵蓋了幾個保護的方法和他們如何工作。

最好的辦法是使用CSS代碼的重定向,像這樣(取自該鏈接):

<span style="unicode-bidi:bidi-override; direction: rtl;"> 
[email protected] 
</span> 
+0

我要去試試CSS方法:) – Alex 2011-04-10 03:47:29

+0

這是否適用於所有瀏覽器? – s3v3n 2011-04-10 03:53:33

+0

應該適用於所有現代瀏覽器。但是,我不確定該鏈接是否可點擊*。 – evgeny 2011-04-10 03:54:26

2

我有好運氣與reCAPTCHA email hide utility,特別是如果你已經USI ng reCAPTCHA。

+3

我恨reCAPTCHAs :(他們的設計很爛他們有惱人的驗證碼:x – Alex 2011-04-10 03:39:54

+0

你可以使用css來定製reCaptcha設計 http://wiki.recaptcha.net/index.php/Theme – 2011-04-10 03:44:50

+1

wtf谷歌買了recaptcha?:) – Alex 2011-04-10 03:49:01

5

JavaScript解決方案之

使用JavaScript,你可以做以下。

emailE = ('[email protected]' + 'emailserver.com') 
document.write('<A href="mailto:' + emailE + '">' + emailE + '</a>') 

有了這個,爬行程序不能再從源代碼中讀取您的電子郵件。

PHP解決方案

用PHP您可以將電子郵件轉換爲Unicode值

function converte($email) { 
    $p = str_split(trim($email)); 
    $new_mail = ''; 
    foreach ($p as $val) { 
     $new_mail .= '&#'.ord($val).';'; 
    } 
    return $new_mail; 
} 

,並在網頁上使用像

<?php echo converte('[email protected]'); ?> 

源碼輸出功能將是什麼像

&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109; 
0

我寫了一個PHP函數,它的電子郵件,打破它,然後使用JavaScript來把它重新走到一起

<?php 
function php_split_js_make_email($phpemail) 
{ 
    $pieces = explode("@", $phpemail); 

    echo ' 
     <script type="text/javascript"> 
      var a = "<a href=\'mailto:"; 
      var b = "' . $pieces[0] . '"; 
      var c = "' . $pieces[1] .'"; 
       var d = "\' class=\'email\'>"; 
       var e = "</a>"; 
       document.write(a+b+"@"+c+d+b+"@"+c+e); 
      </script> 
      <noscript>Please enable JavaScript to view emails</noscript> 
     '; 
    } 
?> 

演示: http://djave.co.uk/php-js-email-protector/

+0

如果JS被禁用,該怎麼辦? (是的,生活在一個瘋狂的世界) – sitilge 2015-10-27 12:57:55