Bonjour à tous
En tant que débutant du php je suis confronté a un probleme d'apostrophe avec la fonction: preg_replace()
Voila:
Il ya une table: texte qui contient des textes
et une table: liens qui contient des mots qui doivent servir a faire des liens
Lorsque j'essais de transformer un mot le table lien en URL avec ce code ça marche bien:
Pour eviter les problemes d'apostrophes dans le texte je fais plutôt comme ça et ça marche:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 $letexte = $lignetexte['letexte']; $textedulien = $ligneliens['textedulien']; $remplacement = " <a href=\"$ligneliens[adresse]\" target=\"_$ligneliens[fenetre]\">$textedulien</a> "; $nouveautexte = preg_replace('#\b' . $textedulien. '\b#i', $remplacement, $letexte); $requete = "UPDATE $tablecontenu SET contenu='$nouveautexte' WHERE(num='$_GET(num]')";
MAIS s'il y a un apostrophe dans le mot ou les mots qui doivent servir de lien ça ne marche plus :-(
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 $letexte = htmlentities($lignetexte['letexte'], ENT_QUOTES); $textedulien = $ligneliens['textedulien']; $remplacement = " <a href=\"$ligneliens[adresse]\" target=\"_$ligneliens[fenetre]\">$textedulien</a> "; $nouveautexte = preg_replace('#\b' . $textedulien. '\b#i', $remplacement, $letexte); $requete = "UPDATE $tablecontenu SET contenu='$nouveautexte' WHERE(num='$_GET(num]')";
Il n'y a pas de message d'erreur, le lien n'est pas fait et en plus ça insere du vide a la place du texte dans la table: contenu!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 $letexte = htmlentities($lignetexte['letexte'], ENT_QUOTES); $textedulien = htmlentities($ligneliens['textedulien'], ENT_QUOTES); $remplacement = " <a href=\"$ligneliens[adresse]\" target=\"_$ligneliens[fenetre]\">$textedulien</a> "; $nouveautexte = preg_replace('#\b' . $textedulien. '\b#i', $remplacement, $letexte); $requete = "UPDATE $tablecontenu SET contenu='$nouveautexte' WHERE(num='$_GET(num]')";
Merci me de dire ou est l'erreur, j'apprends le php sur le tas et suis loin de tout savoir :-)
Mathieu
Partager