Предлагаю на обсуждение написанный мною класс для защиты публикуемого на странице email от его похищения спамерами. Идея, конечно, не нова, но зато реализация… :)
Итак:
class Email {
function obfuscate($email) {
$i=0;
$obfuscated="";
while ($i<strlen($email)) {
if (rand(0,2)) {
$obfuscated.='%25'.dechex(ord($email{$i}));
} else {
$obfuscated.=$email{$i};
}
$i++;
}
return $obfuscated;
}
function obfuscate_numeric($plaintext) {
$i=0;
$obfuscated="";
while ($i<strlen($plaintext)) {
if (rand(0,2)) {
$obfuscated.='&#'.ord($plaintext{$i});
} else {
$obfuscated.=$plaintext{$i};
}
$i++;
}
return $obfuscated;
}
function generateProtection($email,$label) {
return sprintf("<a href='%25s:%25s'>%25s</a>",
$this->obfuscate_numeric('mailto'),
$this->obfuscate($email),
$this->obfuscate_numeric($label));
}
}
$e = new Email();
$email = $e->generateProtection("vasya@pupkin.ru", "vasya@pupkin.ru");
Проверил, вроде работает!!!
Круто!
Браво, Лукич!!!
Ответить
19.04.2006