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

  FORUM HardWare.fr
  Programmation
  PHP

  Probleme avec les regex

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Probleme avec les regex

n°422272
link182
Posté le 10-06-2003 à 11:03:04  profilanswer
 

voila j'ai mon propre systeme de balisage dans un texte pour les liens : [URL] www.monsite.fr [/URL]
 
je voudrais transformer ca en <a href="www.monsite.fr">www.monsite.fr</a>
 
 
je sais pas comment faire et j'ai rien trouvé sur le net pour faire ca... et pour comprendre les  expressions regulieres, dur dur !


---------------
Quoi ? 2.21 Gigowatts ! Mais seul un éclair peut délivrer une telle puissance !
mood
Publicité
Posté le 10-06-2003 à 11:03:04  profilanswer
 

n°422516
Zirtukob
Posté le 10-06-2003 à 13:45:03  profilanswer
 

Au lieu de t'embeter avec les expressions régulières, essayes plutot de voir du coté de la fonction str_replace.
Ca me semble plus adapté à ce que tu veux faire.


Message édité par Zirtukob le 10-06-2003 à 13:45:38
n°422653
anapajari
s/travail/glanding on hfr/gs;
Posté le 10-06-2003 à 14:59:39  profilanswer
 

Essaye un truc dans le genre:

Code :
  1. preg_replace("/\[URL\](.*?)\[\\URL\]/", "<a href=\".\\1."\">".\\1."</a>", $tonTexte);

n°450421
sire de Bo​tcor
Armorican way of life
Posté le 07-07-2003 à 17:15:55  profilanswer
 

ça m'intéresse aussi !
et le dernier code ne fonctionne pas !
 
est-ce que qqun aurait un code sûr
(j'essaie de trouver ce qui ne va pas...)


---------------
«Ceux qui croient que les peuples suivront leurs intérêts et non leurs passions n’ont rien compris au XXe siècle.» © Raymond Aron
n°450425
anapajari
s/travail/glanding on hfr/gs;
Posté le 07-07-2003 à 17:19:50  profilanswer
 

pour quelque chose comme [URL ]www.tonsite.com[/URL ]

Code :
  1. $string = preg_replace("/\[URL\](.*?)\[\/URL\]/s", "<a href=\"$1\">$1</a>",


pour quelque chose comme [URL=www.tonsite.com ]tonsite[/URL ]

Code :
  1. $string = preg_replace("/\[URL=(.*?)\](.*?)\[\/URL\]/s", "<a href=\"$1\">$2</a>", $string);


 
et ce qui n'allait pas dans celle d'avant ce qu'il cherchait une balise de fin type [\URL] au lieu de [/URL ]


Message édité par anapajari le 07-07-2003 à 17:22:45
n°450430
grohark
Posté le 07-07-2003 à 17:24:18  profilanswer
 

tiens un truc un peu plus complet :
 

Code :
  1. $texte = preg_replace("/\[url\]((http|https|ftp|mailto):\/\/[a-z0-9;\/\?:@=\&\$\-_\.\+!*'\(\),]+?)\[\/url\]/i", "<a href=\"\\1\">\\1</a>", $texte);

 
et
 

Code :
  1. $texte = preg_replace("/\[url=((http|https|ftp|mailto):\/\/[a-z0-9;\/\?:@=\&\$\-_\.\+!*'\(\),]+?)\](.+?)\[\/url\]/i", "<a href=\"\\1\">\\3</a>", $texte);

n°450431
sire de Bo​tcor
Armorican way of life
Posté le 07-07-2003 à 17:24:22  profilanswer
 

ok ou bien pour faire comme le précédent :
$tonTexte=preg_replace("/\[URL\](.*?)\[\/URL\]/s", "<a href=\"$1\">$1</a>", $tonTexte);


---------------
«Ceux qui croient que les peuples suivront leurs intérêts et non leurs passions n’ont rien compris au XXe siècle.» © Raymond Aron
n°450444
anapajari
s/travail/glanding on hfr/gs;
Posté le 07-07-2003 à 17:30:15  profilanswer
 

désolé grohark ton truc marche pas si j'ecrit: [URL ]www.google.com[/URL ] ce qui est un peu dommage non?
 
En plus quand c'est des balises utilisées pour son propre systeme de balisages on peut supposer que il va pas ecrire n'importe quoi ???

n°450459
grohark
Posté le 07-07-2003 à 17:38:16  profilanswer
 

oui t'es forcé de mettre de mettre http://   c'est pas la mort quand même !

n°451207
sire de Bo​tcor
Armorican way of life
Posté le 08-07-2003 à 15:15:27  profilanswer
 

Pour faire exactement l'inverse !
 
c'est-à-dire pour passer de :
<a href="www.google.com" target=new>www.google.com</a>
à :
www.google.com
 
comment peut-on faire le regex ?
 
j'ai essayé ça mais ça fait des erreurs :

Code :
  1. $monTexte=preg_replace("/\<a\ href=\"(.*?)\"\ target=new\>(.*?)</a>/s", "\[url\]$1\[\/url\]", $monTexte);


Message édité par sire de Botcor le 08-07-2003 à 15:17:06

---------------
«Ceux qui croient que les peuples suivront leurs intérêts et non leurs passions n’ont rien compris au XXe siècle.» © Raymond Aron
mood
Publicité
Posté le 08-07-2003 à 15:15:27  profilanswer
 

n°451217
anapajari
s/travail/glanding on hfr/gs;
Posté le 08-07-2003 à 15:23:59  profilanswer
 

Code :
  1. $monTexte=preg_replace("/<a href=\"(.*?)\" target=new>(.*?)</a>/s", "$1", $monTexte);


 
ça doit marcher mais exactement avec le motif que tu as donné car si par exemple  tu as un class qui se balade au milieu de ta balise a ça ne marchera pas. Attention aussi au nombre d'espace séparant chaque "mot".

n°451225
sire de Bo​tcor
Armorican way of life
Posté le 08-07-2003 à 15:27:36  profilanswer
 

il me met
"Warning: Unknown modifier 'a' in nom_du_fichier.php on line 465"


---------------
«Ceux qui croient que les peuples suivront leurs intérêts et non leurs passions n’ont rien compris au XXe siècle.» © Raymond Aron
n°451229
sire de Bo​tcor
Armorican way of life
Posté le 08-07-2003 à 15:31:46  profilanswer
 

avec ça, ça marche :

Code :
  1. $monTexte=preg_replace("/<a href=\"(.*?)\"(.*?)a>/s", "$1", $monTexte);


 
mais c du bidouillage...


Message édité par sire de Botcor le 08-07-2003 à 15:32:04

---------------
«Ceux qui croient que les peuples suivront leurs intérêts et non leurs passions n’ont rien compris au XXe siècle.» © Raymond Aron
n°451235
anapajari
s/travail/glanding on hfr/gs;
Posté le 08-07-2003 à 15:36:48  profilanswer
 

arf c'est moi qu'est quichonné désolé, j'ai oublié de mettre un \ devant le / de fermeture de la balise a...
Et en plus j'ai oublié de te mettre les tags URL.
 

Code :
  1. $monTexte=preg_replace("/<a href=\"(.*?)\" target=new>(.*?)<\/a>/s", "$1", $monTexte);

n°451251
sire de Bo​tcor
Armorican way of life
Posté le 08-07-2003 à 15:52:35  profilanswer
 

ah, tiens, oui ! ça marche aussi !
et c'est plus propre : je prends !
 [:spikler]


---------------
«Ceux qui croient que les peuples suivront leurs intérêts et non leurs passions n’ont rien compris au XXe siècle.» © Raymond Aron

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

  Probleme avec les regex

 

Sujets relatifs
Problème avec un tableau HTML dynamique[programmation robot] problème avec un timer...
Problème de création de variableProblème Licence
Problème de caratere ' dans un formulaire[Flash] Envoyer un E-mail ? [problème résolu]
Problème de tableau dynamique[ACCESS] Problème de syntaxe d'une requête !
probleme d'affichage tableauBig problème
Plus de sujets relatifs à : Probleme avec les regex


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