我的用户使用 CMS 输入工作机会。在这些工作机会中,有时电子邮件地址是纯格式 ( please contact job@job.com
) 或 html mailto: 链接(<a href="mailto:job@job.com">jobline</a>
甚至更烦人的一个<a href="mailto:job@job.com">job@job.com</a>
)。
我想构建一个 php 函数,它可以找到任何一种格式,并通过构建一个告诉人类该做什么的 html 字符串来防止垃圾邮件,并通过 javascript 为启用 javascript 的设置重建一个适当的可点击 mailto:link。这是我遇到问题的检测部分。
以下适用于纯电子邮件。我怎样才能调整它来检测 mailto: 链接呢?
$addr_pattern = '/([A-Z0-9._%+-]+)@([A-Z0-9.-]+)\.([A-Z]{2,4})(\((.+?)\))?/i';
preg_match_all($addr_pattern, $content, $addresses);
$the_addrs = $addresses[0];
for ($a = 0; $a < count($the_addrs); $a++) {
$repaddr[$a] = preg_replace($addr_pattern, '<span title="$5" class="pep-email">$1(' . $opt_val . ')$2.$3</span>', $the_addrs[$a]);
}
$cc = str_replace($the_addrs, $repaddr, $content);
PS:这是为了改进现有的 wordpress 插件:Pixeline 的电子邮件保护器。获奖答案的作者将在插件代码、描述和变更日志中得到平淡的记述。