par
mankind » 05 sept. 2006, 13:33
salut,
voici la fonction que j'utilise pour rendre automatiquement cliquables dans un article, les liens hypertextes (web, e-mail) grâce à l'ajout de la balise a href correspondante.
Code : Tout sélectionner
function activlien($lien) {
$textelien=("\\2");
$textemail=("\\1");
$lien = eregi_replace(
"(http|https|ftp)://([[:alnum:]/\n+-=%&:_.~?]+[#[:alnum:]+]*)",
"<a href=\"\\1://\\2\" target=_blank>$textelien</a>",
$lien);
$lien = eregi_replace(
"(([a-z0-9_]|\\-|\\.)+@([^[:space:]]*)([[:alnum:]-])\.([^[:space:]]*)([[:alnum:]-]))",
"<a href=\"mailto:\\1\">$textemail</a>",
$lien);
return $lien ;
}
Pour insérer des images dans un article, j'utilise des balises personnalisées dans le genre BBCode : [image] et [/image]. Et pour qu'il n'y ait pas un double traitement des urls (fonction activliens + fonction images) j'aimerais que la fonction activliens ci-dessus ne s'applique pas s'il y a une balise "[image]" accolée à l'adresse web - exemple :
[image]
http://www...
autrement dit, si on trouve la séquence "[image]http://..." ou "[image]https://..." ou "[image]ftp://..." dans la chaine de caractères, on n'applique pas la fonction.
cela est-il possible ?
merci de votre aide...
salut,
voici la fonction que j'utilise pour rendre automatiquement cliquables dans un article, les liens hypertextes (web, e-mail) grâce à l'ajout de la balise a href correspondante.
[code]function activlien($lien) {
$textelien=("\\2");
$textemail=("\\1");
$lien = eregi_replace(
"(http|https|ftp)://([[:alnum:]/\n+-=%&:_.~?]+[#[:alnum:]+]*)",
"<a href=\"\\1://\\2\" target=_blank>$textelien</a>",
$lien);
$lien = eregi_replace(
"(([a-z0-9_]|\\-|\\.)+@([^[:space:]]*)([[:alnum:]-])\.([^[:space:]]*)([[:alnum:]-]))",
"<a href=\"mailto:\\1\">$textemail</a>",
$lien);
return $lien ;
}
[/code]
Pour insérer des images dans un article, j'utilise des balises personnalisées dans le genre BBCode : [image] et [/image]. Et pour qu'il n'y ait pas un double traitement des urls (fonction activliens + fonction images) j'aimerais que la fonction activliens ci-dessus ne s'applique pas s'il y a une balise "[image]" accolée à l'adresse web - exemple :
[image]http://www...
autrement dit, si on trouve la séquence "[image]http://..." ou "[image]https://..." ou "[image]ftp://..." dans la chaine de caractères, on n'applique pas la fonction.
cela est-il possible ?
merci de votre aide...