Page 1 sur 1

Remplacement de chaîne

Posté : 23 nov. 2008, 22:38
par hub73
Bonjour.
Quelqu'un pourrait t-il m'aiguiller et me donner quelques idées.

J'ai un table t_images (Pk_num_image, Nom_fichier_image, Legende_image, ...)

Dans un texte, j'ai inclu des sortes de balises {1} ou {2} {217}
ces 'balises' correspondent chacune à une clef primaire {Pk_num_image}.

Maintenant je veux remplacer dans le texte la balise {1} par le Nom_fichier_image correspondant. (je simplifie mais mon objectif est en fait d'afficher l'image). Idem pour les autres balises.

Comment feriez vous. Quelles fonction php serait les bienvenue et les plus rapides ?

Merci beaucoup pour vos suggestions.

Posté : 24 nov. 2008, 00:22
par Ryle
A mon avis, même si ce n'est pas nécessairement ce qu'il y a de plus simple, les expressions régulières sont le plus adaptées dans ton cas. L'idée serait de récupérer les identifiants contenus dans ton texte avec un preg_match() et un masque te permettant de répérer les id entre {}. A partir de là tu peux interroger ta base pour trouver les correspondances. Ensuite il te suffit de réutiliser une expression régulière avec preg_replace() (ou de simples str_replace()) pour retrouver les ids et les remplacer par la valeur récupérée de ta base :)

Posté : 24 nov. 2008, 08:59
par hub73
masque te permettant de répérer les id entre {}.
Un petit coup de main pour formuler ce masque m'aiderait bien, j'ai toujours des difficultés à écrire des expression régulières malgré la lecture d'une multitude de tutoriels... Pour le reste je devrais pouvoir y arriver.

Dans tous les cas, merci beaucoup !

Posté : 24 nov. 2008, 11:41
par jojolapine
Le plus simple reste quand même d'essayer, quand on a des sites comme http://lumadis.be ,qui te permette de le faire si facilement faut pas s'en priver!
Sinon, ben il suffit de faire ça comme masque, (dans l'idée)
#\{([0-9]+)\}#
Donc on cherche des chiffres en des crochets, voilà... ;)

Posté : 24 nov. 2008, 14:30
par hub73
c'est vrai, mais je manque vraiment d'assurance vis à vis des expression régulières. J'avais trouvé la même chose, alors je dois progresser ! Grand merci !