Aide sur str_replace();

Résolu/Fermé
Sinistrus Messages postés 1010 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 - Modifié par Sinistrus le 13/03/2014 à 10:26
Sinistrus Messages postés 1010 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 - 13 mars 2014 à 12:04
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 :
$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

ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 228
13 mars 2014 à 11:15
'lut, plutôt que de faire un nombre in-mesurable de
str_replace
, fais plutôt un seul
strstr
avec un tableau de correspondance comme je l'ai fait ici. (j'ai mis un lien car CCM remplace les lettres justement)
1
Sinistrus Messages postés 1010 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 17
13 mars 2014 à 11:28
Merci infiniment ! C'est EXACTEMENT ce que je cherchais a dire et a faire !

Merci gravgun !
0
Sinistrus Messages postés 1010 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 17
Modifié par Sinistrus le 13/03/2014 à 11:51
Désolé, j'ai un soucis sur ces caractères :
'"'=>'& #34;', 
'&'=>'& #38;',
'<'=>'& #60;',
'>'=>'& #62;'
Vous savez comment résoudre cela ?
0
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 228
13 mars 2014 à 11:57
É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
$Description
,
$Conseil
et
$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.
0
Sinistrus Messages postés 1010 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 17
Modifié par Sinistrus le 13/03/2014 à 12:05
Encore une fois merci gravgun !

Je penses que cet article est sujet à un cours complet sur le
str_replace
:p
0