Difficultés avec une regex ou charset
Bonjour
Je demande votre aide pour résoudre un probleme dont je ne connais pas l'origine:
J'ai un code qui fonctionne trés bien en local (win xp) avec wamp ou easyphp, le voici:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
<?php
header('Content-Type: text/html; charset=UTF-8');
if (isset($_POST['lemot']) && !empty($_POST['lemot']))
{
include "conectbdd.php";
$reqaj = "UPDATE liens SET lelien='" . mysql_real_escape_string($_POST[lemot]) . "' WHERE (num='1')";
if (mysql_query ($reqaj, $lien))
{
$reqtxt = "SELECT *FROM texte WHERE (num='1')";
$restxt = mysql_query($reqtxt, $lien);
$ligtxt = mysql_fetch_assoc($restxt);
$letexte = $ligtxt['letexte'];
$reqliens = "SELECT *FROM liens WHERE (num='1')";
$resliens = mysql_query($reqliens, $lien);
$ligliens = mysql_fetch_assoc($resliens);
$textedulien = $ligliens['lelien'];
$remplacement = " <a href=\"www.unsite.org\" target=\"_blank\">$textedulien</a> ";
$nouvtexte = preg_replace("#\b" . $textedulien. "\b#iu", $remplacement, $letexte);
$requete = "UPDATE contenu SET lecont='" . mysql_real_escape_string($nouvtexte) . "' WHERE (num='1')";
if (mysql_query ($requete, $lien))
{
echo "Le lien est en place";
}
else
{
echo "probleme pour modifier la table contenu !!";
}
}
else
{
echo "probleme pour modifier la table liens !!";
}
mysql_close($lien);
}
else
{
echo "variable vide !!";
}
echo "<a href=\"index.php\">Retour</a>";
?> |
Ce code me permet de prendre un mot dans la table: liens puis, s'il existe dans la table texte, de le transformer en lien cliquable et de ranger le nouveau texte dans la table: contenu.
La base de DD est en interclassement utf8_unicode_ci ainsi que les tables
mes scripts et mes page d'affichage sont encodés en UTF-8
Hélas chez mon hébergeur ça ne fonctionne pas avec les mots commencants ou finissants avec une lettre accentué par exemple= égaré ou santé !!
si le mot comporte une lettre accentué a l'intérieur ça fonctionne par exemple= générer!!
La regex ne reconnait pas les mot commençant ou finissants par un caractère spécial !!
Sur mon hébergemt ma base est aussi en utf8_unicode_ci et la version de mysql est aussi la 5
Merci d'avance pour vos suggestions
Mathieu