'); // @define('_mailcrypt_REGEXPR1', ',\b['._cs_liens_AUTORISE.']*@[a-zA-Z][a-zA-Z0-9-.]*\.[a-zA-Z]+(\?['._cs_liens_AUTORISE.']*)?,'); @define('_mailcrypt_REGEXPR2', ',\b(['._cs_liens_AUTORISE.']+)@([a-zA-Z][a-zA-Z0-9-.]*\.[a-zA-Z]+(\?['._cs_liens_AUTORISE.']*)?),'); } } // filtre surchargeable pour la balise #EMAIL protegee en public mais pas en prive function mailcrypt_email_dist($texte) { if(strpos($texte, '@')===false) return $texte; if(function_exists('mailcrypt_email')) return mailcrypt_email($texte); return test_espace_prive()?$texte:mailcrypt($texte); } function mailcrypt($texte) { if(strpos($texte, '@')===false) return $texte; mailcrypt_init(); // echappement des 'input' au cas ou le serveur y injecte des mails persos if (strpos($texte, ',Umsi', 'cs_liens_echappe_callback', $texte); // echappement des 'protoc://login:mdp@site.ici' afin ne pas les confondre avec un mail if(strpos($texte, '://')!==false) $texte = preg_replace_callback(',[a-z0-9]+://['._cs_liens_AUTORISE.']+:['._cs_liens_AUTORISE.']+@,Umsi', 'cs_liens_echappe_callback', $texte); // echappement des domaines .htm/.html : ce ne sont pas des mails if(strpos($texte, '.htm')!==false) $texte = preg_replace_callback(',href=(["\'])[^>]*@[^>]*\.html?\\1,', 'cs_liens_echappe_callback', $texte); // protection des liens HTML $texte = preg_replace(",[\"\']mailto:([^@\"']+)@([^\"']+)[\"\'],", '"#" title="$1' . _mailcrypt_AROBASE_JS . '$2" onclick="location.href=lancerlien(\'$1\',\'$2\'); return false;"', $texte); // retrait des titles en doublon... un peu sale, mais en attendant mieux ? $texte = preg_replace(',title="[^"]+'._mailcrypt_AROBASE_JSQ.'[^"]+"([^>]+title=[\"\']),', '$1', $texte); if(strpos($texte, '@')===false) return echappe_retour($texte, 'LIENS'); // protection de tout le reste... $texte = preg_replace(_mailcrypt_REGEXPR2, '$1'._mailcrypt_AROBASE.'$2', $texte); return echappe_retour($texte, 'LIENS'); } function maildecrypt($texte) { if(strpos($texte, 'spancrypt')===false && strpos($texte, 'lancerlien')===false) return $texte; mailcrypt_init(); // traiter les chez $texte = preg_replace(',(.*),U','@',$texte); // traiter les liens $texte = preg_replace( ',href="#" (title=["\'].*?["\']) onclick="location.href=lancerlien\(\'(\S*?)\'\,\'(\S*?)\'\); return false;",', '$1 href="mailto:$2@$3"', $texte); // traiter les title return str_replace(_mailcrypt_AROBASE_JS, '@', $texte); } ?>