Probleme avec preg_replace et apostrophes
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:
Code:
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]')"; |
Pour eviter les problemes d'apostrophes dans le texte je fais plutôt comme ça et ça marche:
Code:
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]')"; |
MAIS s'il y a un apostrophe dans le mot ou les mots qui doivent servir de lien ça ne marche plus :-(
Code:
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]')"; |
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!
Merci me de dire ou est l'erreur, j'apprends le php sur le tas et suis loin de tout savoir :-)
Mathieu