Aide sur str_replace();
Résolu
Sinistrus
Messages postés
1010
Date d'inscription
Statut
Membre
Dernière intervention
-
Sinistrus Messages postés 1010 Date d'inscription Statut Membre Dernière intervention -
Sinistrus Messages postés 1010 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous !
Je galère fort sur la fonction str_replace(); et sollicite votre aide !
J'ai 3 zone de texte a gérer :
- ma table est en general_ci
- mes feuilles sont déclarée utf-8
- voici mon code :
Je "sais" que ce n'est pas correcte, mais demande votre aide pour remplacer des caractères non affichés ou souvent remplacés par de "?"
Merci d'avance
Je galère fort sur la fonction str_replace(); et sollicite votre aide !
J'ai 3 zone de texte a gérer :
- ma table est en general_ci
- mes feuilles sont déclarée utf-8
- voici mon code :
$db = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) or die('Erreur de connexion '.mysql_error());
mysql_select_db(MYSQL_BASE,$db) or die('Erreur de selection '.mysql_error());
mysql_query("SET NAMES 'utf8'");
$Description = str_replace(chr(146), "’", $Description);
$Description = str_replace(chr(156), "oe", $Description);
$Conseils = str_replace(chr(146), "’", $Conseils);
$Conseils = str_replace(chr(156), "oe", $Conseils);
$Resultat = str_replace(chr(146), "’", $Resultat);
$Resultat = str_replace(chr(156), "oe", $Resultat);
$sqlfr = "UPDATE tb_produits SET Description ='$Description', Conseils ='$Conseils', Resultat ='$Resultat' WHERE NumId='$NumId'";
mysql_query($sqlfr) or die('Erreur SQL !'.$sqlfr.'<br>'.mysql_error()); ?>
Je "sais" que ce n'est pas correcte, mais demande votre aide pour remplacer des caractères non affichés ou souvent remplacés par de "?"
Merci d'avance
2 réponses
'lut, plutôt que de faire un nombre in-mesurable de
str_replace, fais plutôt un seul
strstravec un tableau de correspondance comme je l'ai fait ici. (j'ai mis un lien car CCM remplace les lettres justement)
Merci infiniment ! C'est EXACTEMENT ce que je cherchais a dire et a faire !
Merci gravgun !
Merci gravgun !
Évidemment... Comme ces chaînes de caractères vont dans une requête SQL, il faut utiliser la fonction mysql_real_escape_string sur chacune des variables
La chaîne de caractères finira comme prévue dans la base de données.
$Description,
$Conseilet
$Resultat:
$Description = mysql_real_escape_string(strtr($Description, $remplace););
La chaîne de caractères finira comme prévue dans la base de données.