Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
836 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Extraire le nom du lien d'une url

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Extraire le nom du lien d'une url

n°691981
j0k3r_n0ir
Bliiiiiiiiiiiiiiiiiip :)
Posté le 03-04-2004 à 22:37:46  profilanswer
 

Sh@rdar a écrit :

function replink($Texte) {
  $Texte = strip_tags($Texte);
  $Texte = nl2br($Texte);
  $Texte = eregi_replace("(http|https|ftp)://([[:alnum:]/\n+-=%&:_.~?]+[#[:alnum:]+]*)","<a href=\"\\1://\\2\" target=\"_blank\">\\1://\\2</a>",$Texte);
  $Texte = eregi_replace("(([a-z0-9_]|\\-|\\.)+@([^[:spa
ce:]]*)([[:alnum:]-])\.([^[:space:]]*)([[:alnum:]
-]))", "<a href=\"mailto:\\1\">\\1</a>", $Texte);
  $Texte = eregi_replace("([a-z0-9]{40})", "\\1 " ,$Texte) ;
  return $Texte ;
}
 
 
tout en un celle là !  

Bonjour !
J'utilise donc cette fonction, au passage, merci Sh@rdar ;)
 
Mais je voudrai en faire une qui fasse tout l'inverse.
C'est a dire qu'elle convertisse <a href= "http://www.toto.com">www.toto.com</a> en www.toto.com  
 
J'ai fait donc ce bou de script :

Code :
  1. $Texte = eregi_replace("<a href=\"(http|https|ftp)://([[:alnum:]/\n+-=%&:_.~?]+[#[:alnum:]+]*)\" target=\"_blank\">([[:alnum:]/\n+-=%&:_.~?]+[#[:alnum:]+]*)</a>","\\2",$Texte);


 
Il marche tres bien ......... mais il ne récupere seulement le code du genre : <a href="http://www.toto.com" target="_blank">toto</a>
 :(  
 
Dans ce cas cela retournera : http://www.toto.com
 
Si quelqu'un pouvais me dire comment faire pour que la fonction ne tienne pas compte des différents parametres passer a la balise <a>.
Parce que la, le code fonctionne que si le parametre target="_blank" est présent ...
Merci...!  
 :hello:


---------------
Licence Professionnelle Multimedia Internet Webmaster | Des articles, des aides, des scripts .... le tout disponible sur mon site.
mood
Publicité
Posté le 03-04-2004 à 22:37:46  profilanswer
 

n°692107
Master_Jul
Posté le 04-04-2004 à 11:30:21  profilanswer
 

On ne peut pas faire une expression régulière qui recherche ?à partir de la fin? ? À ce moment, tu n'aurais plus qu'à gérer ?...>  </a>?. Je me souviens d'un truc de ce genre en shell.

n°692165
kalex
Posté le 04-04-2004 à 15:21:26  profilanswer
 

Je sais pas si j'ai bien compris.
 
Sur :
<a href="http://www.toto.com" target="_blank">toto</a>
Ce qui est souligné est optionnel, c'est ça ?
 
Si oui utilise une parenthèse non capturante, suivi de ? :
(?: target=\"_blank\" )?


Message édité par kalex le 04-04-2004 à 15:24:26
n°693071
j0k3r_n0ir
Bliiiiiiiiiiiiiiiiiip :)
Posté le 06-04-2004 à 01:12:20  profilanswer
 

En fait on peut dire optionnel, mais c'est juste qu'avec la fonction que j'ai faite, s'il n'y a pas target="_blank", il ne m'extrait pas le nom du lien.
 
J'ai pas très bien compris ton histoire de parenthese non capturante....


---------------
Licence Professionnelle Multimedia Internet Webmaster | Des articles, des aides, des scripts .... le tout disponible sur mon site.
n°693083
kalex
Posté le 06-04-2004 à 01:34:38  profilanswer
 

Pour juste faire ça, on peut faire plus simple.

Code :
  1. $Texte = preg_replace('#<a +href *= *"(.*?)"(:? *target *= *"_blank" )? *>.*?</a *>#i', '\\1', $Texte);


Message édité par kalex le 06-04-2004 à 01:35:41
n°693097
simogeo
j'ai jamais tué de chats, ...
Posté le 06-04-2004 à 01:56:19  profilanswer
 

j0k3r_n0ir a écrit :


J'ai pas très bien compris ton histoire de parenthese non capturante....


 
c'est la le problème .... :/ enfin si tu veux pondre une regex il faut que tu apprennes la syntaxe regex ... c'est un langage dans le langage ..... il va inévitablement falloir faire des efforts  [:spamafote]  
 
http://www.phpfrance.com/tutorials/index.php?id=22
http://cyberzoide.developpez.com/php4/regex/


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°693099
kalex
Posté le 06-04-2004 à 01:59:10  profilanswer
 

simogeo a écrit :

il va inévitablement falloir faire des efforts  [:spamafote]

Non, parce que ce que j'ai codé marche très bien. :o

n°693102
simogeo
j'ai jamais tué de chats, ...
Posté le 06-04-2004 à 02:02:14  profilanswer
 

kalex a écrit :

Non, parce que ce que j'ai codé marche très bien. :o


me suis arrêté au post de j0k3r_n0ir  :o  
 
ce ue tu as fait marche peut-être très bien, ca ne l'empeche pas forcement de comprendre ce qui'l se passe  ;)


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°693107
kalex
Posté le 06-04-2004 à 02:13:21  profilanswer
 
n°693112
j0k3r_n0ir
Bliiiiiiiiiiiiiiiiiip :)
Posté le 06-04-2004 à 02:25:48  profilanswer
 

uhu
Merci je savais pas que le regex était une sorte de language !
 
Je vais plancher un peu dessus.
Et voir surtout si ce que m'a donné kalex fonctionne ;)


---------------
Licence Professionnelle Multimedia Internet Webmaster | Des articles, des aides, des scripts .... le tout disponible sur mon site.
mood
Publicité
Posté le 06-04-2004 à 02:25:48  profilanswer
 

n°695460
j0k3r_n0ir
Bliiiiiiiiiiiiiiiiiip :)
Posté le 08-04-2004 à 14:11:33  profilanswer
 

Bon je viens de tester ces deux solutions :

Code :
  1. $Texte = strip_tags($Texte,'<br><a');
  2. $Texte = eregi_replace("<a [^>]+>([^<]+)<\/a>","\\1",$Texte


 
Et elle marche nikel toutes les deux.;)
 
En passant, quelle fonction est la plus rapide niveau execution....
T'en qu'a faire optimiser la chose  :D


Message édité par j0k3r_n0ir le 08-04-2004 à 14:11:49

---------------
Licence Professionnelle Multimedia Internet Webmaster | Des articles, des aides, des scripts .... le tout disponible sur mon site.
n°695511
simogeo
j'ai jamais tué de chats, ...
Posté le 08-04-2004 à 14:38:24  profilanswer
 

a mon avis et de loin .. strip_tags()


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°695519
j0k3r_n0ir
Bliiiiiiiiiiiiiiiiiip :)
Posté le 08-04-2004 à 14:43:08  profilanswer
 

Merci !
Je pensais aussi mais rien ne vaut l'avis des autres !
 
Merci pour tous les gars !!! :jap:


---------------
Licence Professionnelle Multimedia Internet Webmaster | Des articles, des aides, des scripts .... le tout disponible sur mon site.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Extraire le nom du lien d'une url

 

Sujets relatifs
Un bouton à la place d'un lien ?Faire un lien sur le résultat d'une requête
Comme un lien mais en pas pareillien entre différente user form
[tests d'unité] un lien? un bouquin?Défilement d'image avec lien, que l'on puisse ralentir et accélé.
faire un lien dans un boutontransformer un lien en bouton genre submit
ouvrir image avec photoshop avec lien hypertextAide contextuelle sur lien(s) hypertexte
Plus de sujets relatifs à : Extraire le nom du lien d'une url


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR