Bonjour,
Suite à vos remarques concernant l’article Crypter du texte, un email, une URL, j’ai bricolé une nouveau filtre pour crypter les emails non plus isolés mais inclus au dans le corps du texte des articles ou autres éléments d’un site SPIP.
Par soucis de clarté dans les noms, l’ancienne fonction qui fonctionne seulement sur les mails isolés a été renommée, la voici à nouveau présentée.
Crypter un mail isolé
function cryptemail($textemail)
{
$s="";
for ($i=0;$i<strlen($textemail);$i++) {
$s.="&#".ord($textemail{$i}).";";
}
return $s;
}Exemple d’usage
<a href="mailto:[(#EMAIL|cryptemail)]">Ecrire à l'auteur</a>
Crypter les adresses emails intégrées dans des textes
Cette nouvelle fonctionnalité utilise un nouveau filtre cryptemail_txt.
function cryptemail_txt($texte) {
while (strpos($texte,"mailto:") > 0) {
$debemail = strpos($texte,"mailto:");
$finemail = strpos($texte,'"',$debemail);
$finemail2 = strpos($texte,'?',$debemail); // test la fin de l'adresse et le début des paramètres
if ($finemail2 > 1){
$finemail = min($finemail,$finemail2);
}
$textemail = substr($texte,$debemail,$finemail-$debemail);
$s= cryptemail($textemail);
$texte = ereg_replace($textemail, $s, $texte);
}
return $texte;
}Comment fonctionne-t-il ?
Il recherche la chaine "mailto:" et crypte tout ce qui suit jusqu’au premier ".
Comment l’utiliser ?
- Copiez-collez les 2 extraits de code ci-dessus dans votre fichier mes_fonctions.php3 (entre une balise
<?phpet une balise?>).
- Dans votre squelette, utilisez le filtre de la manière suivante :[(#TEXTE|cryptemail_txt)]
Exemple d’usage
[(#TEXTE|cryptemail_txt)] [par (#LESAUTEURS|cryptemail_txt)]

