Freitag, 7. Februar 2014

Obfuscate Mail Address

http://pastebin.com/T6CsqiTp
Hier ein Stück Code zum Verstecken von E-Mailadressen auf Webseiten, damit diese von Spambots nicht oder nur schwer ausgelesen werden können.

Die Funktion gibt in etwa so etwas zurück:
<a href=\"javascript:window.location.href = 'mai' + 'lto:' +
 ['john.doo.franklin','example.'+'org'].join(String.fromCharCode(60 + 
2*2))\">john.doo.franklin
<!-- --><span class=\"tmp_obml\">Irgendwas hier</span>
&#000064;<!-- -->example&#000046;
<span class=\"tmp_obml\">und auch hier!</span
>org</a>
Alternativ kann der Linktext (das was der Wbseitenbesucher zu sehen bekommt) auch auf x-Zeichen gekürzt ausgegeben werden.
<?php 
/** 
 *   Returns an obfuscated E-Maillink
 *   with an maximum length of the linktext (if you want)
 * 
 *   @param mail mailaddress to obfuscate
 *   @param cutTo if > 0 (and bigger then lenght of $postfix), linktext will be shorten to $cutTo chars (including added $postfix)
 *   @param postFix will be added at the end of linktext, if strlen($mail) > $cutTo
 *   @returns something like this:
 *   <a href="javascript:window.location.href = 'mai' + 'lto:' + ['john','smith.'+'com'].join(String.fromCharCode(60 + 2*2))">john<!-- --><span class="tmp_obml">Irgendwas hier</span>&#000064;<!-- -->smith&#000046;<span class="tmp_obml">als auch hier!</span>com</a>
 *  
 *   Don't forget to add 
 *       .tmp_obml{display:none;}
 *   to you CSS!
 * 
 *   obfuscate_Mail_Link("john.doo.franklin@example.org");
 *   obfuscate_Mail_Link("john.doo.franklin@example.org", 20);
 *   obfuscate_Mail_Link("john.doo.franklin@example.org", 20, '..');
 *   
*/   
function obfuscate_Mail_Link($mail, $cutTo = 0, $postFix = '...'){
        $s1 = $s2 = $s3 = $s1_s = $s2_s = $s3_s = '';
        $tmp_array = explode('@',$mail);
        $s1 = $s1_s = $tmp_array[0];                                                    // Name vor dem @
        $tmp_domain_array = count($tmp_array) > 1 ? explode('.',$tmp_array[1]) : array();
        $s3 = $s3_s = (count($tmp_domain_array) > 0 ? array_pop($tmp_domain_array):''); // Topdomain = letztes Element
        $s2 = $s2_s = implode('.',$tmp_domain_array);                                   // Domain ohne Topdomain = Rest
        $at = '&#000064;';
        $dot = '&#000046;';
        
        $pfl = strlen($postFix);
        //kürzen, wenn gefordert
        if($cutTo > $pfl && (strlen($s1_s.$s2_s.$s3_s)) > $cutTo){
            if(strlen($s1_s) > $cutTo){
                $s1_s = substr($s1_s, 0, $cutTo - $pfl).$postFix;
                $s2_s = $s3_s = '';
                $at = '';   // es wurde vor dem @ gekürzt
                $dot = ''; 
            }elseif(strlen($s1_s.$s2_s) > $cutTo - $pfl - 1){ // @ kommt dazu
                $s2_s = substr($s2_s, 0, $cutTo - $pfl - 1 - strlen($s1_s)).$postFix;
                $s3_s = '';
                $dot = ''; // Topleveldomain weggekürzt
            }elseif(strlen($s1_s.$s2_s.$s3_s) > $cutTo - $pfl - 2){ // @ und  . kommt dazu
                $s3_s = substr($s3_s, 0, $cutTo - $pfl - 2 - strlen($s1_s.$s2_s)).$postFix;
                $dot = '';
            }
        }
        return '<a href="'."javascript:window.location.href = 'mai' + 'lto:' + ['".$s1."','".$s2.".'+'".$s3."'].join(String.fromCharCode(60 + 2*2))".'">'.$s1_s.'<!-- --><span class="tmp_obml">Irgendwas hier</span>'.$at.'<!-- -->'.$s2_s.$dot.'<span class="tmp_obml">und auch hier!</span>'.$s3_s.'</a>';
}
?>

Trackback URL:
http://sysout.twoday.net/stories/664972624/modTrackback

Suche

 

Aktuelle Beiträge

Workflow: Durchsuchbares...
Hier eine Anleitung, wie man ein altes, in Fraktur...
techomatic - 2017-07-10 23:26
[WIN7] Benutzerprofil...
Wenn nach der Anmeldung die Fehlermeldung erscheint: Die...
techomatic - 2017-05-30 23:05
Thank You
Thank you, very helpful.
Markus H (Gast) - 2017-05-23 15:48
Fehler: Asterisk (agi...
Wenn Asterisk (auf raspbian) die Verarbeitung eines...
techomatic - 2017-05-13 13:58
SBS 2011 / Server 2008...
Wer den WSUS auf seinem SBS 2011 / Server 2008 R2 stillgelegt...
techomatic - 2017-05-02 21:12

Credits

Knallgrau New Media Solutions - Web Agentur f�r neue Medien

powered by Antville powered by Helma


xml version of this page

twoday.net AGB

click tracking

Status

Online seit 3515 Tagen
Zuletzt aktualisiert: 2017-07-11 03:19

Gesellschaft
Hardware
Software
Sonstiges
Profil
Abmelden
Weblog abonnieren