Как отображать адрес электронной почты для пользователей, но скрывать от робота? Есть ли простой способ сделать это с помощью PHP, Javascript или JQuery?

Есть ли элегантный и простой / простой способ сделать это с помощью PHP, Javascript или JQuery?

Вы можете использовать функцию 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); ?> 

Есть много способов сделать это. Нам посчастливилось запутать источник через 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.

никогда не пишите адреса электронной почты как текст на веб-страницах, НИКОГДА!

и браузеры ботов, безусловно, JS включен -_-

Обфускация с использованием самых сложных 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> 

Стоит отметить, что обе методики дают пользователям совершенно доступную, интерактивную ссылку.

вы можете попробовать изменить имя@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> 

Это не будет стоять как ссылка, но все равно будет распознаваться человеческим глазом на странице и, вероятно, не будет анализироваться роботом. Не проверял, ты. Вероятно, вы можете вставить эту строку в пустоту и привязать ее к функции, которая составляет адрес, разобрав содержимое.

Просто быстрая мысль …

Это трудно сделать. Если вы не используете изображение, все, что визуализируется в вашем браузере для человека, может быть доступно для чтения человеком роботом. Таким образом, даже скремблируя электронное письмо каким-то образом в источнике 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>