Des ennuis avec une regex ou bien utf-8
Posté : 08 janv. 2012, 19:17
Bonjour
Je demande votre aide pour résoudre un probleme dont je ne connais pas l'origine:
J'ai un code qui fonctionne bien en local (win xp) avec wamp ou easyphp, le voici:
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 finssants 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
Je demande votre aide pour résoudre un probleme dont je ne connais pas l'origine:
J'ai un code qui fonctionne bien en local (win xp) avec wamp ou easyphp, le voici:
<?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 finssants 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