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

EDI, CMS, Outils, Scripts et API PHP Discussion :

[Configuration] probleme avec le remplacement des accents


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 164
    Points : 64
    Points
    64
    Par défaut [Configuration] probleme avec le remplacement des accents
    salut voila j'ai un petit souci pour remplacer des caractere speciaux par les lettre comme le é par le e dans le resultat de ma requete

    voici un bout de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $phrase=$result["mot"];
            $masque = array("À","Á","Â",............
            $ok_masque = array("a","a"................
     
    $mots = str_replace($masque,$ok_masque,$phrase);
    exemple d'utilisation:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     <a href="recherche-<?php echo $mots;?>.html">

    voila comme ceci si je tappe â mon lien affiche â
    or moi je voudrai que mon lien soit a

    en fesant ceci sa marche
    $mots = str_replace($masque,$ok_masque,"â"); mais moi je veux utiliser le resultat de ma requete.

    merci par avance

  2. #2
    Membre du Club
    Webmaster
    Inscrit en
    Juillet 2005
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2005
    Messages : 36
    Points : 48
    Points
    48
    Par défaut
    j ai pas compris bien votre question mais essai avec cette fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function virer_accents($chaine) {
      return( strtr( $chaine, 
                     "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ", 
                     "AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn" ) ); 
    }
    salut

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 164
    Points : 64
    Points
    64
    Par défaut
    merci de ta reponse mais sans succés


    jai testé aussi avec enreg_replace enregi_replace.....

    tjs le meme soucis
    si je fait par exemple avec ta fonction strtr("têst", "ê",e) sa marche mais si je fais strtr($result["mot"],"é","e") bin s amarche pas.

    je mets le bout de code entier. le but est de nettoyer les urls des accents.... (Urlrewriting)


    code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    $res_mots=mysql_query("select id_mot, mot, nb_recherche from mot_recherche order by mot ASC");
     
        $i=0;
     
        while($result=mysql_fetch_array($res_mots, MYSQL_ASSOC))
        {
        ?>
            <td align=center id="top_mot" width=30% title="<?echo "Mot recherché : $result[mot]";?>">
    <?
     
     
     
     
     
            $phrase="tésr"; //$result["mot"];
     
            $mots=eregi_replace ("é","e",$phrase ) ;
     
            ?>
            <a href="recherche-annuaire-gratuit-<?php echo $mots;?>.html">
            <?php
            echo "$result[mot]";
            ?>
    ...

    merci par avance

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 164
    Points : 64
    Points
    64
    Par défaut
    comme j'ai pas de reponse, je donne un autre exemple d'utilisation


    $var= "je veux que tête ou gîte soit ecrit sans accent "


    replace("ê","e", $var) pour ecrire tete gite.....

    ceci marche mais si je fais $var=resultat d'une requete bin sa marche pas pourtant ma requete et tout fonctionne.


    voila en esperant etre claire

    merci
    ++

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 25
    Points : 16
    Points
    16
    Par défaut
    Peut-être un problème "d'interclassement" de tes tables qui ne correspond pas à la config utilisée dans php ?

    essaye de rajouter ceci dans tes requêtes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    COLLATE latin1_swedish_ci
    Le "latin1_swedish_ci" éventuellement à changer suivant ce qu'il y a dans tes tables.

  6. #6
    Membre émérite Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Points : 2 273
    Points
    2 273
    Par défaut
    Salut, tu n'appliques pas par hasard un html_entities() sur le résultat de ta requête avant de la copier dans $var ?
    Tu voir ca en affichant la source HTML ou un var_dump().

    bye

    edit : ah oui en effet ca paraît plus logique que ma réponse bidon lol ^^
    Vive les roues en pierre

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 164
    Points : 64
    Points
    64
    Par défaut
    bon j'ai inclus dans ma requete le COLLATE (que je ne connaissé pas du tout)
    mais au lieu de remplacer é par e je suis obliger de faire remplacer "eacute;" par e bizare non?

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 164
    Points : 64
    Points
    64
    Par défaut
    bon bin je croyer que sa vennais du fait que jamais mis en double la balise meta content iso......


    mais non

    mais je comprend pas car sur une page sa marche et pas sur une autre

    pourtant je fais copié collé de tout

    voici ladresse http://qui.trouve.free.fr

    sur la page d'acceuil sa marche mais pas sur la page http://qui.trouve.free.fr/tous_les_mots.php

    c'est la liste des mots tappé (les urls plus precisément).

    merci de meclaircire si quelqu'un comprend

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 25
    Points : 16
    Points
    16
    Par défaut
    Tu peux mettre quelques exemples du résultat de ta requête, stp ? (avec et sans COLLATE)
    Ainsi que la structure de ta table (via un export de phpmyadmin, par ex)

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 164
    Points : 64
    Points
    64
    Par défaut
    ok
    juste un truc avant de le faire j'ai remarqué dans la page tout les mot si je fais str_replace("eacute;","e",$mots) sa marche mais pas si je fais ("é","e".....


    Structure de la table et quelque exemple via php my admin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    CREATE TABLE `mot_recherche` (
      `id_mot` int(5) NOT NULL auto_increment,
      `mot` varchar(255) collate latin1_general_ci NOT NULL default '',
      `nb_recherche` int(5) NOT NULL default '0',
      PRIMARY KEY  (`id_mot`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=645 ;
     
    -- 
    -- Contenu de la table `mot_recherche`
    -- 
     
    INSERT INTO `mot_recherche` VALUES (70, 'caplivres', 22);
    INSERT INTO `mot_recherche` VALUES (312, 'mp3', 14);
    INSERT INTO `mot_recherche` VALUES (40, 'Humour', 76);
    INSERT INTO `mot_recherche` VALUES (6, 'cerf volant', 21);
    bon sur http://qui.trouve.free.fr/tous_les_mots.php
    les 10 premier son avec le collate et les 10 suivant, sans collate

    voila merci de ton aide
    ++

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 164
    Points : 64
    Points
    64
    Par défaut
    ps je comprend par car su la page d'acceuil c'est sans collate et c un copié collé du code ormis la limit dans la requete et sa marche sans soucis.

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 25
    Points : 16
    Points
    16
    Par défaut
    En attendant de trouver une explication, tu peux déjà rechercher les caractères "html entities". Je pense même que c'est plus sûr comme méthode (mais je peux me tromper).

    Tu en trouveras la liste ici : http://www.w3schools.com/tags/ref_entities.asp

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 164
    Points : 64
    Points
    64
    Par défaut
    ouai jai commencé a le faire mais je comprend pas car sur la page d'acceuil c exactement le meme code avec la meme requete avec...... et sa marche

    bizare bizare

    en tous cas merci
    ++

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

Discussions similaires

  1. [RegEx] Remplacement des accents avec une regex
    Par benohit dans le forum Langage
    Réponses: 7
    Dernier message: 07/09/2006, 18h20
  2. [Javascript/Dhtml] Problemes avec la supression des formulai
    Par ETI-trian dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 29/03/2006, 20h49
  3. Réponses: 11
    Dernier message: 16/12/2003, 19h58
  4. Probleme avec la copie des surfaces
    Par Black_Daimond dans le forum DirectX
    Réponses: 3
    Dernier message: 09/01/2003, 10h33
  5. Problèmes avec le filtrage des ip
    Par berry dans le forum Réseau
    Réponses: 9
    Dernier message: 30/12/2002, 07h51

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