簡體   English   中英

如何為用戶顯示電子郵件地址但是隱藏機器人? 有沒有一種簡單的方法來使用PHP,Javascript或Jquery?

[英]How to display an email address for users but hide from robot? Is there a simply way to do it using PHP, Javascript or Jquery?

使用PHP,Javascript或Jquery有一種優雅,簡單/簡單的方法嗎?

有很多方法可以做到這一點。 我們通過python / javascript得到了運氣混淆的來源。 另一個更簡單的最愛是CSS unicode-bidi技術:

div.contact { unicode-bidi:bidi-override; direction: rtl; }
<div class="contact">moc.rab@oof</div>

打印出來:

foo@bar.com

您可能需要查看reCAPTCHA Mailhide 它應該很容易從PHP使用。

您可以使用PHP imagestring()函數來創建圖像。

<?php
// Create a 100*30 image
$im = imagecreate(120, 30);

// White background and blue text
$bg = imagecolorallocate($im, 255, 255, 255);
$textcolor = imagecolorallocate($im, 0, 0, 255);

// Write the email address at the top left
imagestring($im, 5, 0, 0, 'test@test.com', $textcolor);

// Output the image
header('Content-type: image/png');

imagepng($im);
imagedestroy($im);
?>

使用最棘手的HTML實體和urlencode進行混淆,用PHP實現: http//hcard.geekhood.net/encode/

資料來源: http//code.google.com/p/hcardvalidator/source/browse/trunk/encode/index.php

我使用的另一種方法是:

<a href="mailto:me@myserver.removethis.com">
<script>[…] a.href = a.href.replace(/removethis\./,'');</script>

值得注意的是,這兩種技術都為用戶提供了完全可訪問,可點擊的鏈接。

永遠不要將電子郵件地址寫為網頁上的文字,絕對不要!

和瀏覽器機器人肯定已啟用JS -_-

您可以嘗試將name@example.com更改為:“name at example dot com”。

但是,機器人可以輕松解釋這一點。

否則,如果您真的有動機,則可以顯示電子郵件地址的動態圖像。

這不是一個完美的解決方案,但Enkoder( http://hivelogic.com/enkoder )對此非常有用。 它使用Javascript來混淆地址。

好。 所以過了一段時間,我發現這篇關於如何輕松做到這一點的博客文章。 http://techblog.tilllate.com/2008/07/20/ten-methods-to-obfuscate-e-mail-addresses-compared/它對垃圾郵件接收有多大影響..

我想這可能是上面給出的信息的補充..干杯!

這會有效嗎?

使用這樣的東西

<span>myaddress</span><span>@</span><span>mydomain.com</span>

這不會成為一個鏈接,但仍然可以被人眼在頁面上識別,並且可能不被機器人解析。 你沒看過來。 您可以將該字符串插入到void中,並將其綁定到通過解析內容來組成地址的函數。

只是一個快速思考......

這很難做到。 除非您使用圖像,否則瀏覽器呈現為人類可讀的任何內容都可以由機器人呈現為人類可讀。 因此,即使在HTML源中以某種方式加擾電子郵件,然后使用javascript函數在頁面呈現上動態地解擾,這也將被機器人擊敗,該機器人也完全呈現DOM。

直到最近我用上述方法取得了很好的成功,並沒有看到任何垃圾郵件。 然而,最近我注意到地址似乎已經被接受了。 所以我只能假設電子郵件拖網漁船正在進行完整的DOM渲染。

總而言之 - 圖像可能是最好的(盡管即使不是100%)

這是一個簡單的jquery解決這個問題的方法:

<script type="text/javascript">
$(document).ready(function() {
    str1="mailto:";
    str2="info";
    str3="@test.com";
    $("#email_a").attr("href", str1+str2+str3);

});
</script>

<a href="#" id="email_a"><img src="sample.png"/></a>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM