2

codeigniter 中是否有一种方法可以使机器人无法读取电子邮件链接?如果没有,有人推荐一个体面的简单解决方案吗?

4

4 回答 4

2

哎呀..

Codeigniter 在 URL 助手中有一个函数 safe_mailto()

于 2013-10-24T11:07:55.667 回答
0

我被告知这将适用于谷歌搜索设备

<!--googleoff: index-->
<a href="mailto:abc@stackoverflow.com">my email</a>
<!--googleon: index-->

资料来源: http: //perishablepress.com/tell-google-to-not-index-certain-parts-of-your-page/

请让我知道是否不正确。

于 2013-10-23T11:20:26.030 回答
0

这里可能没有任何完美的解决方案,特别是如果您不想给用户带来不便。

一种简单的方法(可以与 ajreal 提到的 google 评论结合使用)是使用实体编码来混淆其来源。这将阻止简单的机器人。

有关详细信息,请参见此处:http ://www.wbwip.com/wbw/emailencoder.html

于 2013-10-23T16:45:59.207 回答
0

CodeIgniter 在 URL Helper 类中有一个 safe_mailto() 方法,可以混淆 HTML 源代码中的电子邮件地址,而不影响最终用户。

https://codeigniter.com/userguide3/helpers/url_helper.html#safe_mailto

示例模板代码:

<p>My e-mail address is <?php $this->load->helper('url'); echo safe_mailto('abc@gmail.com'); ?>.</p>

示例 HTML 输出:

<p>My e-mail address is <script type="text/javascript">
//<![CDATA[
var l=new Array();
l[0] = '>';
l[1] = 'a';
l[2] = '/';
l[3] = '<';
l[4] = '|109';
l[5] = '|111';
l[6] = '|99';
l[7] = '|46';
l[8] = '|108';
l[9] = '|105';
l[10] = '|97';
l[11] = '|109';
l[12] = '|103';
l[13] = '|64';
l[14] = '|99';
l[15] = '|98';
l[16] = '|97';
l[17] = '>';
l[18] = '"';
l[19] = '|109';
l[20] = '|111';
l[21] = '|99';
l[22] = '|46';
l[23] = '|108';
l[24] = '|105';
l[25] = '|97';
l[26] = '|109';
l[27] = '|103';
l[28] = '|64';
l[29] = '|99';
l[30] = '|98';
l[31] = '|97';
l[32] = ':';
l[33] = 'o';
l[34] = 't';
l[35] = 'l';
l[36] = 'i';
l[37] = 'a';
l[38] = 'm';
l[39] = '"';
l[40] = '=';
l[41] = 'f';
l[42] = 'e';
l[43] = 'r';
l[44] = 'h';
l[45] = ' ';
l[46] = 'a';
l[47] = '<';

for (var i = l.length-1; i >= 0; i=i-1) {
    if (l[i].substring(0, 1) === '|') document.write("&#"+unescape(l[i].substring(1))+";");
    else document.write(unescape(l[i]));
}
//]]>
</script>.</p>
于 2016-09-05T05:28:06.690 回答