bbcode et email...

Répondre
Layer
le 30/06/2003 à 16:09
Layer
slt
je suis en train de finir mon système de bbcode smiley et je bute sur le final

en fait je crypte l'email pour éviter le spam, pour le premier bbcode {mail}quelque@chose.fr{/mail} c'est bon, mais pour le second {mail=quelqie@chose.fr}Lien mailto{/mail} j'ai essayer de chercher mais je trouve toujours pas

Bon c'est un truc de ouf mais bon smiley

<?
function encrypte_email($mail) {

$ret_mail='';
$lg = strlen($mail[1]);

for ($x = 0; $x < $lg; $x++) {
$ord = ord(substr($mail[1], $x, 1));
$ret_mail .= "&#$ord;";
}
// si [mail]a@b.fr[/mail] il me retourne
return '<a href="mailto:'.$ret_mail.'">\\1</a>';
//et je sais pas comment faire pour qu'il me retourne
//return '<a href="mailto:'.$ret_mail.'">'.$ret_mail.'</a>';
//si [mail=a@b.fr]Lien mailto[/mail]
}

//Mail sans non
$texte = preg_replace_callback('`\[mail\](.+?)\[/mail\]`si', 'encrypte_email', $texte);
//Mail avec non que j'arrive pas a faire
$texte = preg_replace_callback('`\[mail=(.+?)\](.+?)\[/mail\]`si', 'encrypte_email', $texte);

?>


can or cannot ?
Error 500 : internal brain error
LA GLOBULE
le 30/06/2003 à 17:00
LA GLOBULE
Perso, j'utilise ceci :
<?php
$Text = preg_replace("/\[mail\=([a-zA-Z0-9\.@]*)\](.+?)\[\/mail\]/", '<a href="mailto:$1">$2</a>', $Text);
?>


Tout simplement ;)
Layer
le 30/06/2003 à 17:53
Layer
smiley ça répond pas a la question parce que ça j'arrive a faire

mais si j'ai fait ce script plus haut, c'est pour éviter le spam... pour le premier ça marche mais le deuxième ça marche pas

j'en déduit donc qu'on ne peux pas faire smiley
Error 500 : internal brain error
LA GLOBULE
le 30/06/2003 à 18:07
LA GLOBULE
Si c'est possible de le faire.

Seulement, je ne sais pas pkoi tu ne traites pas le deuxieme ca....
Layer
le 30/06/2003 à 18:15
Layer
je trouve pas l'astuce pour pouvoir faire

j'ai essayer de ruser en faisant ceci :

<?
function encrypte_email($mail) {

$ret_mail='';
$lg = strlen($mail[1]);

for ($x = 0; $x < $lg; $x++) {
$ord = ord(substr($mail[1], $x, 1));
$ret_mail .= "&#$ord;";
}
if (preg_match("/\[mail\](.+?)\[\/mail\]/i",$mail)){
return '<a href="mailto:'.$ret_mail.'">'.$ret_mail.'</a>';
}
else{
return '<a href="mailto:'.$ret_mail.'">\\1</a>';
}
}
?>


(ouais je sais c'est pas trop futer smiley ) marche pas non plus...
Error 500 : internal brain error
Layer
le 30/06/2003 à 19:21
Layer
yep c'est un pb de tableau smiley
impossible de faire en une seule fonction smiley
Error 500 : internal brain error
LA GLOBULE
le 30/06/2003 à 19:46
LA GLOBULE
Ben si :
- tu comptes le nombre d'éléments de $mail
- si il a un élément, tu sais que tu es dans le cas où l'adresse mail n'a pas de nom
- si il en a deux, alors tu es dans le cas où l'adresse mail à un nom

non ?
Layer
le 01/07/2003 à 08:55
Layer
apparement elle prend en compte le(s) masque(s) :

pour le premier {mail}blablabla{/mail} il y aura 2 éléments : tab[1] = {mail}blablabla{/mail} et tab[2] = blabla

et pour le 2ieme {mail=aeiou}blablabla{/mail} et aura 3 éléments : tab[1] = {mail=aeiou}blablabla{/mail}, tab[2] = aeiou , tab[3]= blablabla

c'est ce que j'ai pu constater
Error 500 : internal brain error
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours