Aller au contenu

preg_replace et dans requete mysql


* xavier *

Sujets conseillés

Bonjour

je voudrais remplacer certains mots d'un texte par des images, les mots à remplacer sont contenu dans une table mysql, cette table comporte l'id, le symbole à remplacer, le nom de l'image et l'attribut ALT.

Mon problème est que j'arrive pas à trouver la bonne syntaxe à employer.

voici ce que j'essay de faire et qui fonctionne pas .

$reponse = mysql_query("SELECT *FROM matable");
while ($donnees = mysql_fetch_array($reponse))
{
$mess2= preg_replace('!'.$donnes['symbole'].'!i',' <img src="1.gif" />',$mess2);
}

ça me donne un superbe message d'erreur: Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 9503997 bytes) in...

En voyant ce message je me suis dis je vais tester en mettant la regex, directement dans le champs symbole sous cette forme: '!:texte:!i'

puis j'ai modifié lecode source comme ceci:

$reponse = mysql_query("SELECT * FROM smileys");
while ($donnees = mysql_fetch_array($reponse))
{
$text= preg_replace($donnees['symbole'],' <img src="1.gif" ',$mess2);

}

là plus de message d'erreur c'est qui est déjà un progrés, mais mon texte n'est pas modifié. Pourtant sans passer pas la BDD en mettant directement: $mess2 = preg_replace('!:content:!i','<img src="2.gif" />',$mess2); ça fonctionne.

D'habitude quand je rencontre une difficulté, je regarde sur d'autres scripts pour voir comment font les autres, mais là j'ai rien trouvé, donc je m'en remet à vous, j'éspère que vous trouverez ce qui cloche, en attendant je remercie d'avance toutes personnes pouvant m'aider à résoudre ce problème.

cordialement

xavier

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...