IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Débug d'un str_replace


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 66
    Points : 39
    Points
    39
    Par défaut Débug d'un str_replace
    Bonjour

    Tout d'abord, désolé de vous déranger pour si peu : J'ai un script qui ne fonctionne pas et je m'arrache les cheveux sans trouver OU est ce oijiozejuoihiuok,coeiherugiohiupandoze de bug

    J'ai écris ce code tout simple, mais il ne fonctionne pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $aRetirer = array("é", "è", "ê", "ï", "î", "ô", "ö", "ù", "û", "ü", "Ã*", "â", "ä", "À", "Â", "É", "Ê", "È", "Ó", "Ô", "Ã’", "Û", "Ãœ", "Ú", "Ï", "’");
    $aMettre = array("é", "è", "ê", "ï", "î", "ô", "ö", "ù", "û", "ü", "à", "â", "ä", "À", "Â", "É", "Ê", "È", "Ó", "Ô", "Ò", "Û", "Ü", "Ú", "Ï", "'");
     
    $connexion = new PDO("mysql:host=127.0.0.1;dbname=testtest", 'root', ''); 
    $resultats=$connexion->query("SELECT * FROM `laTableEnQuestion`"); 
    $resultats->setFetchMode(PDO::FETCH_OBJ);
    while( $ligne = $resultats->fetch() ) {
    	echo str_replace($aRetirer, $aMettre, $ligne->act_resume).'<br />';
    }
    $resultats->closeCursor();
    Type de chaine de départ : au cours d’une randonnée e
    L'écho affiche exactement la même chose malgré le str_replace ... J'ai du zapé un truc mais je ne vois pas et j'ai d'autres trucs à faire il faut que j'avance. Si une bonne âme pouvait me dire où est le problème, je lui en serait reconnaissant !

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Pourquoi cette substitution ? C'est une question d'encodage ce que tu nous montres la.
    Les données dans ta bdd sont visiblement écrites en UTF8 et ta page est dans un ISO.

    Dans Phpmyadmin tu vois "é" ou "é" ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 66
    Points : 39
    Points
    39
    Par défaut
    é

    En fait, les données ont été enregistréees comme ça ...
    donc il ne s'agit plus, à l'heure actuelle, d'un problème d'encodage mais de remplacer les strings du type " é " par "é" etc.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Et si tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     echo utf8_decode($ligne->act_resume).;
    ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 66
    Points : 39
    Points
    39
    Par défaut
    Non le problème n'est pas l'encodage
    C'est enregistré comme ça en base

  6. #6
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    Par défaut
    si les colonnes de la bases de donneés sont pas en utF8, et si ta un problème de charset général sur la base

    1 ) sauver la base ( table ) actuelle dans son format pour memo
    2 ) exporter la base
    3 ) importer la base dans un logiciel qui te permet de transformer les caractères iso en utf8
    4 ) enregistrer
    5 ) ré-importer la base en ayant changer le type latin ,en utf8 du charset et des collonnes dans la base données

    si tu es sur que le charset est utf8 sur la base et les colonnes

    1 ) vérifier que les fichiers qui communiquent avec la bdd ont par default le mode d’échange UTF8 ( mysql_set_charset , PDO::MYSQL_ATTR_INIT_COMMAND etc)
    2 ) vérifier que l'encodage de tes fichiers sont en UTF8

    En php, tu as encore une vérification celons que tu envoi des données par $_POST, $_GET, en ajax ou en requête normal, mais avec ce qui est dit plus haut ça reste vraiment un détail

    voila, bon courage
    Conception / Dev

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Non le problème n'est pas l'encodage
    C'est enregistré comme ça en base
    Certes mais puisque tu cherches à faire la conversion, utf8_decode() le fait.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo utf8_decode('pépé');
    // pépé
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 66
    Points : 39
    Points
    39
    Par défaut
    Je vous remercie pour vos réponses. La solution a été choisie par un autre dev qui a directement remplacé les caractères en base il me semble.

    Bonne journée à tous, sujet résolu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. pb str_replace
    Par splouf dans le forum Langage
    Réponses: 4
    Dernier message: 30/01/2006, 18h00
  2. PHP str_replace
    Par carlos20 dans le forum Langage
    Réponses: 14
    Dernier message: 02/12/2005, 15h57
  3. [RegEx] str_replace qui veut pas replacer
    Par lamoufle dans le forum Langage
    Réponses: 5
    Dernier message: 13/09/2005, 12h37
  4. Problème de débug
    Par truman dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 05/05/2005, 18h46
  5. Débug de DLL
    Par Bayard dans le forum C++Builder
    Réponses: 3
    Dernier message: 22/07/2002, 15h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo