ユーザーには電子メール アドレスを表示し、ロボットには非表示にするにはどうすればよいですか?PHP、JavaScript、または Jquery を使用してそれを行う簡単な方法はありますか?

StackOverflow https://stackoverflow.com/questions/1873992

質問

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 を介してソースを難読化することができたのは幸運でした。もう 1 つの簡単なお気に入りは、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が有効になっています

PHPで実装トリッキー可能HTMLエンティティとでurlencodeを使用して難読化: http://hcard.geekhood.net/encode/する

ソース: http://code.google.com/p/ hcardvalidator /ソース/閲覧/トランク/エンコード/ index.phpをする

私が使用するもう一つのアプローチは、次のとおりです。

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

これは、両方の技術がユーザーに完全にアクセスできる、クリック可能なリンクを与えることは注目に値します。

あなたはにname@example.com変更してみてください。 「例の名前は、ドットコム」ます。

しかし、ロボットは簡単にこれを説明することができます。

あなたが本当にやる気のある場合はそれ以外の場合は、電子メールアドレスの動的な画像を表示することができます。

これは完璧な解決策ではないですが、Enkoder( http://hivelogic.com/enkoder の)ですこのため非常に便利。これは、アドレスを難読化するためにJavascriptを使用します。

[OK]をクリックします。だから、しばらくした後、私は簡単にこれを行う方法で、このブログの記事を見つけました。 ます。http:// techblog .tilllate.com / 2008/07/20/10-方法・ツー・難読化・電子メール・アドレス・比較/ に そして、それはスパム受信にどのくらい影響を与えてやるん..

私は、これは上記の情報に相補的になることができると思います。.. 乾杯!

この作業は??同様でしょう。

このようなものを使用して

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

これはリンクとして耐えられないだろうが、それでもページに、人間の目で認識可能となり、おそらくcon'tロボットによって解析されます。あなたは、それをチェックアウトしていません。 あなたはおそらく無効にその文字列を挿入し、コンテンツを解析することにより、アドレスを構成する機能にバインドすることができ..

ただ、高速な思考...

このを行うのは困難です。あなたがイメージを使用していない限り、お使いのブラウザによって人間が読めるレンダリングされるものではロボットによって人間が読めるレンダリングすることができます。そうであっても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帰属
所属していません StackOverflow
scroll top