#!/usr/bin/perl -w use strict; # Spam-me-not Perl version by Justin Simoni # ported from the Spam-me-not PHP version by Rolf Offermanns # which itself was inspired by the Spam-me-not JavaScript + by Andreas Neudecker # # Spam-me-not Javascript Homepage: # # http://www.zapyon.de/ sub encodeString { my ($originalString, $mode) = @_; return $originalString if $mode == 4; my $encodedString = ""; my $nowCodeString = ""; my $randomNumber = -1; my $originalLength = length($originalString); my $encodeMode = $mode; my $i; for ( $i = 0; $i < $originalLength; $i++) { $encodeMode = (int(rand(2)) + 1) if ($mode == 3); if($encodeMode == 1) { #case 1: // Decimal code $nowCodeString = "&#" . ord(substr($originalString +,$i)) . ";"; }elsif($encodeMode == 2) { #case 2: // Hexadecimal code $nowCodeString = "&#x" . perl_dechex(ord(substr($o +riginalString,$i))) . ";"; }else{ return "ERROR: wrong encoding mode."; } $encodedString .= $nowCodeString; } return $encodedString; } sub perl_dechex { my $s = shift; return sprintf("%X", $s); } sub obfuscateEmail { my $email = shift; my $mode = shift; my $obfuscatedEMail = encodeString($email, $mode); return "<a href=\"mailto:$obfuscatedEMail\">$obfuscatedEMail</ +a>"; } print obfuscateEmail('test@test.de',1) . "\n"; print obfuscateEmail('test@test.de',2) . "\n"; print obfuscateEmail('test@test.de',3) . "\n"; print obfuscateEmail('test@test.de',4) . "\n";
Hope that helps -
|
|---|