Nettoyer une adresse url
Bonjour,
je souhaiterais transformer une adresse du type :
<a href="http://www.blabla.com">lien</a>
en : http://www.blabla.com
Le problème vient du fait que mes liens html peuvent etre multiples, et insérés
dans un texte plus ou moins long
En clair, la fonction "strip_tags" ne convient pas, je ne peux pas me permettre de scanner tout le texte
Il me faudrait comme l'inverse de l'expression régulière suivante (qui transforme une adresse mail, ou un lien vers un site, en lien cliquable) :
$in = array(
'`((?:https?|ftp)://\\S+)(\\s|\\z)`',
'`([[:alnum:]]([-_.]?[[:alnum:]])*@[[:alnum:]]([-_.]?[[:alnum:]])*\.([a-z]{2,4}))`'
);
$out = array(
'<a href="$1" target="_blank">$1</a>$2',
'<a href="mailto:$1">$1</a>'
);
$text = preg_replace($in, $out, $_POST['texte']);
Merci d'avance
Fausto
Quelle que soit la solution que tu retiendras, tu finira pas scanner le fichier à traiter. Mais peut-être qu'il y a un morceau qui n'est pas passé quand tu as publié ton message ?
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Bonjour,
non, tout le message est bien passé
donc, pas de moyen plus rapide que de tout scanner avec strip_tags ??
Est-ce que c'est lent ? Et si oui, as-tu fait des benchmarks pour le prouver ? Optimiser sans point de repère, c'est une perte de temps pour souvent arriver à un résultat inférieur à ce qu'on avait au départ.
Je vois difficilement comment on peut faire plus rapide que strip_tags (sauf si tu as un gros document, mais dans ce cas, c'est une bonne raison d'optimiser).
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Disons que je récupère le champ d'une table pour commencer, et ensuite je réécris un fichier .js existant, avec les nouvelles données,
donc cela prend un peu de temps
je vais voir cette histoire de point de repères
merci
F
Très franchement, dans l'opération, ça m'étonnerait que ce soit strip_tags qui prenne le plus de temps. Les IO utilisés lors de l'écriture du fichier ou l'accès ç la base doivent avoir un impact bien plus important que strip_tags.
Mais pourquoi tu réécris le fichier ?
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
en fait le .js est un éditeur bbcode
en clair, je récupère la valeur de l'ancien texte (dans la base), je supprime les balises html que je remplace par des balises bbcode (c'est là d'ailleurs que je dois supprimer les balises <a href)
Je recompose le javascript et je remplace le contenu de l'ancien par le nouveau
assez complexe et dense comme manip !
F
Ecrire un message
Votre message vient d'être créé avec succès.
BB-Code
Pour insérer une URL clickable
Pour insérer une adresse E-mail
Pour annoter
Pour écrire du code
Pour faire un lien vers une fonction PHP
Pour écrire du texte préformaté
Pour écrire du texte en gras
Pour écrire du texte en italique
Pour écrire du texte souligné
Pour écrire du texte barré
Pour écrire un titre principal
Pour écrire un titre secondaire
Pour écrire une liste
Smiley
:bond:
:boxe:
:bsmile:
:bump:
:clap:
:coeur:
:cool:
:cry:
:eek:
:evil:
:fleur:
:fou2:
:fou:
:grin:
:grrr:
:hammer:
:hippy:
:hum:
:idee2:
:idee:
:kdo:
:king:
:ko:
:lol:
:love2:
:love:
:mad:
:maitre:
:noel:
:oops:
:raa:
:razz:
:roll:
:sad:
:skull:
:smile:
:timide:
:trink:
:vice:
:vomi:
:wink:
:zzz: