Problème de parser [PHP] - PHP - Programmation
Marsh Posté le 27-08-2005 à 12:59:08
A première vue la première règle bloque la dernière si, faudrait les inverser.
Pour le coup du remplacement des [] par des <>, faudrait voir comment tu écris ta/tes règle(s).
Marsh Posté le 27-08-2005 à 13:55:35
idem que sielfried, si tu veux utiliser des regexp en série, il faut toujours mettre d'abords la régle dont tous les cas sont aussi intercepté par une régle moins restrictive. Si c'est pas mis dans ce sens là, la régle la plus restrictive ne trouvera rien.
Aussi, il faut faire attention que le changement généré par un des changements ne soit pas intercepté par un autre regexp, sinon tu risques de chercher longtemps d'où vient le probléme.
Quand à ton parser, on poura pas t'aider sans que tu nous montre la partie du code qui pose probléme.
Marsh Posté le 27-08-2005 à 23:39:54
Vous vouelz que je vous montre quoi exactement? Une seule RegExp suffit pour les balises <>, ou vous voulez l'intégralité de mon parser?
(attention il est plutot gros )
Marsh Posté le 27-08-2005 à 23:47:20
Ben montre les regexp qui font pas ce que tu voudrais. -_-
Marsh Posté le 28-08-2005 à 00:04:21
ben les seuls problèmes qui persistent sont les images (sa marche toujours pas )
et les délimitations.
Jposte mon code allegé :
Code :
|
Voila, je crois que c'est bon. Donc, mes problèmes sont les délimiteurs et les images.
Merci
Marsh Posté le 28-08-2005 à 00:29:08
Pour les images j'viens de remarquer que t'as [a_z0-9._/-]+ au lieu de [a-z0-9._/-]+, donc forcément, ça capte rien. Un petit i en option ferait pas de mal non plus.
Quant aux délimiteurs, c'est quoi le problème, concrètement ?...
Marsh Posté le 28-08-2005 à 01:20:28
ben, les délimiteurs, comme tu peux le voir j'utilise pour l'instant des étoiles (*gras* Texte en gras */gras*)
Et quand je remplace les étoiles par des <> ben sa marche plus : au lieu de m'afficher du texte en gras, il m'affiche <gras>Texte en gras.</gras>
Jvai tester pour les images
Marsh Posté le 28-08-2005 à 01:25:22
$contenu = preg_replace('!http://[a_z0-9._/-]+\.(jpg|jpeg|png|gif|bmp|tga)!iU', '<img src="$0" alt="Mon Image" />', $contenu);
Normalement si je tape http://www.monsite.com/image.png sa devrait automatiquement remplacer par l'image elle même, non? Parceque la il m'affiche directement l'URL...
Marsh Posté le 28-08-2005 à 09:44:01
Ben je t'ai expliqué que t'avais mis a_z au lieu de a-z, ce qui fait foirer ton masque.
Pour le délimiteur <> tu mets bien des \ avant ?
Code :
|
marche.
Marsh Posté le 27-08-2005 à 12:28:45
Bjour tout le monde!
Voila, j'ai décidé de me faire un ptit parser, et j'ai quelques questions.
D'abord je voudrais remplacer les [] par des <>, mais je sais pas pourquoi, sa marche pas. Pour l'instant je dosi faire mes tests avec des -tirets mais c'est pas super satifaisant. Quelqu'un sait d'où vient le problème?
Ensuite, j'ai un problème au niveau des images. J'essaye de me faire une balise <image>adresse_de_l'image</image> (ou plutot -image-adresse_de_l'image-/image- X( ) Mais sa marche pas, il m'affiche le code tel-quel, en mettant un lien cliquable. Pour info,
Voici mes regex concernant les urls et adresses mails. Jpense pas que la premiere regex bloque la derniere, si?
J'ai cherché un peu dans la doc php, et j'ai rien trouvé de satisfaisant (à vrai dire j'ai surtout cherché pour les délimiteurs )
Voila. Merci si vous pouvez m'expliquer d'ou vient le problème
Message édité par baiterave le 27-08-2005 à 12:33:09