Auteur Sujet: Interdire Un Chaîne Dans Une Autre  (Lu 695 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Samiby

  • Connaisseur
  • ***
  • Messages: 427
    • ICHTHUS.ADOS
Interdire Un Chaîne Dans Une Autre
« le: 21 juillet 2004 à 21:40:00 »
J'ai des balises personnalisées comme ça :
[image adresse="www.quelquepart.ouca/dossier/fichier.ext]description de l'image[/image]
Pour remplacer par <img src="http://www.quelquepart.ouca/dossier/fichier.ext" alt="description de l'image" />, j'utilise une expression régulière ($msg correspond au message à transformer):
$msg = eregi_replace("\[image adresse=\"(http://)?([a-z0-9./+%?&-]+)\"\](.+)\[/image\]","<img src=\"http://\\2\" alt=\"\\3\" />",$msg);Mais lorsque l'on poste plusieurs images, la chaine dans le "alt" équivaut à la chaîne depuis le 1er [image adresse="url"] jusqu'au dernier [/image].
Il faut donc interdire (là où il y a (.+) ) la chaîne [/image].
J'ai essayé (sur les conseils de Fozzy, merci à lui de m'avoir aidé):
$msg = eregi_replace("\[image adresse=\"url_a_transformer"\]((^(\[image\]))+)\[/image\]","<img src=\"url" alt=\"\\3\" />",$msg);Mais ça ne fonctionne pas :o !
Quelqu'un sait-il cmment faire pour enlever ce bug ?
Je sais qu'il y a la solution d'inverser, de faire des balises du type : [image titre="description de l'image"]url[/image], mais cette solution n'est pas très "jolie".
Blogs gratuits
Un chercheur et remplaceur de mots en série, dans des fichiers textes (php, xml, html, css, ...) Nouvelle version ! 1.0beta2
"Je remercie tous ceux à qui je dois de vivre", Guillevic

Hors ligne Magi-X

  • Débutant
  • *
  • Messages: 17
Interdire Un Chaîne Dans Une Autre
« Réponse #1 le: 30 juillet 2004 à 14:02:34 »
salut, voila j'ai vu ton msg pendant que j'etait au boulot, et vu que je m'ennuie je me suis dis je vais vite une fois faire la requete :) :)

$msg = preg_replace("/\[image adresse=\"(.*?)\"\](.*?)\[\/image\]/si","<img src=\"\\1\" alt=\"\\2\" \/>",$msg);
essaye celle la, je l'ai fait en notepad vite fais, donc ne me tue pas s'il y a des faute de frappe ou syntax, car je ne vois pas les couleurs, mais la technique est bonne j'en suis certain, car je l'utilise dans un de mes scripts.

s'il y a un probleme tu as que le mettre ;)

Hors ligne Samiby

  • Connaisseur
  • ***
  • Messages: 427
    • ICHTHUS.ADOS
Interdire Un Chaîne Dans Une Autre
« Réponse #2 le: 30 juillet 2004 à 14:40:51 »
Ca marche, merci beaucoup.
Blogs gratuits
Un chercheur et remplaceur de mots en série, dans des fichiers textes (php, xml, html, css, ...) Nouvelle version ! 1.0beta2
"Je remercie tous ceux à qui je dois de vivre", Guillevic

Hors ligne Magi-X

  • Débutant
  • *
  • Messages: 17
Interdire Un Chaîne Dans Une Autre
« Réponse #3 le: 30 juillet 2004 à 14:49:39 »
Citer
Ca marche, merci beaucoup.
pas de probleme :)