str_replace et accents

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par kikifrance, 30 Septembre 2012.

  1. kikifrance
    kikifrance WRInaute discret
    Inscrit:
    4 Janvier 2005
    Messages:
    129
    J'aime reçus:
    0
    Salut,

    Je bloque.

    Le problème a pourtant l'air facile

    De ma base de donnée, je récupère un article complet. Je souhaites remplacer le mot électrique par<a href="http://www.coucou.comm">coucouc</a>

    Avec str_replace, preg_replace, rien ne marche.

    Par contre je remplace facilement les mots sans accents.
    Mon code arrive de ma bdd déja sous forme é et non &acute;

    Je bloque... :?
     
  2. zeb
    zeb WRInaute accro
    Inscrit:
    5 Décembre 2004
    Messages:
    12 021
    J'aime reçus:
    1
    encodage ... :wink: tu aurais pas un souci d'encodage différent entre ton script et le contenu retourné par la base ? les caractères accentués sont peut être aussi stockés avec leur correspondance HTML ...
     
  3. zeb
    zeb WRInaute accro
    Inscrit:
    5 Décembre 2004
    Messages:
    12 021
    J'aime reçus:
    1
    Méa coulpa j'avais pas vue la piste html est donc a écarter mais il reste les soucis classiques utf / iso etc ...
     
  4. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 182
    J'aime reçus:
    351
    +1 pour les soucis d'encodage, str_replace() est safe pour l'UTF8 mais il faut le même encodage de la chaîne et du texte à remplacer.
     
  5. Marc Dalibard
    Marc Dalibard Nouveau WRInaute
    Inscrit:
    28 Septembre 2012
    Messages:
    23
    J'aime reçus:
    0
    Bonjour,

    Es-tu sûr de ce que tu récupères de ta base de données?
    As-tu fais un test sans la base de données?
    Et enfin comme dit ci-dessus, peut-être as-tu un problème d'encodage dans ton fichier.
    Sinon : Exemple de http://php.net/manual/fr/function.preg-replace.php

    <?php
    $string = 'Le renard marron agile saute par dessus le chien paresseux.';
    $patterns = array();
    $patterns[0] = '/agile/';
    $patterns[1] = '/marron/';
    $patterns[2] = '/renard/';
    $replacements = array();
    $replacements[2] = 'grizzly';
    $replacements[1] = 'brun';
    $replacements[0] = 'lent';
    echo preg_replace($patterns, $replacements, $string);
    ?>

    L'exemple ci-dessus va afficher :
    Le grizzly brun lent saute par dessus le chien paresseux.
     
  6. kikifrance
    kikifrance WRInaute discret
    Inscrit:
    4 Janvier 2005
    Messages:
    129
    J'aime reçus:
    0
    Merci à tous, vous m'avez nettement mis sur la piste.

    Débriefing:

    Avec mb_detect_encoding, je me suis rendu à l'évidence qui était déja évidente avant, que j'avais effectivement un problème d'encodage. La fonction après plusieurs tests reconnaissait un encodage différent entre mes chaines (ASCII <=>UTF-8)

    Donc après de nombreuses tentatives, j'en arrive au code fonctionnel suivant. Valable si votre bdd renvoie des chaines encodées en UTF-8

    Code:
    $bodytext = $article->bodytext(); //mon texte de la base
    
    $arc=utf8_encode("arc électrique");
    $origine=array($arc);
    
    $apresreplace=array("<a href=\"http://www....">$arc</a>");
    
    $bodytext = str_replace($origine, $apresreplace, $bodytext);
    Mon erreur était d'encoder avec le array... :roll:

    Le premier qui se moque à mon utf8 dans la figure :evil: :mrgreen:
     
  7. zeb
    zeb WRInaute accro
    Inscrit:
    5 Décembre 2004
    Messages:
    12 021
    J'aime reçus:
    1
    10 avé maria et 3 notre père pour pénitence fils :D
     
  8. jcaron
    jcaron WRInaute accro
    Inscrit:
    13 Février 2004
    Messages:
    2 579
    J'aime reçus:
    0
    Ou encore plus simple... Tu édites/sauvegardes ton .php en UTF-8...

    Jacques.
     
Chargement...
Similar Threads - str_replace accents Forum Date
str_replace ... une seule fois ... Développement d'un site Web ou d'une appli mobile 20 Avril 2011
Str_replace dans un .htaccess ? URL Rewriting et .htaccess 16 Décembre 2010
Remplacer les guillemets par str_replace? Développement d'un site Web ou d'une appli mobile 18 Février 2008
[résolu]str_replace et URL Développement d'un site Web ou d'une appli mobile 5 Novembre 2007
PHP : str_replace ne fonctionne pas Développement d'un site Web ou d'une appli mobile 12 Janvier 2006
2 tableaux : str_replace ou ereg_replace : réglé Administration d'un site Web 28 Avril 2005
sitelink avec accents dans le nom de recherche dans google Référencement Google 27 Novembre 2020
accents sur les mots clés et orthographe Rédaction web et référencement 28 Mars 2019
Conseil SEO : faut-il mettre les accents dans les mots-clés ? Débuter en référencement 3 Août 2018
Résolu [Mots clés] Requêtes avec accents et sans accents Référencement Google 21 Décembre 2017
Points interrogation à la place des accents Développement d'un site Web ou d'une appli mobile 23 Novembre 2016
Problème d'apostrophes et d'accents sur Wordpress. Développement d'un site Web ou d'une appli mobile 9 Juillet 2015
Migration php 5,5 à 5,6 = accents tronqués Développement d'un site Web ou d'une appli mobile 5 Mars 2015
Comment transformer les accents dans les urls URL Rewriting et .htaccess 28 Août 2014
Ma source n'affiche pas les accents mais plutôt &eacute;.... Débuter en référencement 10 Octobre 2013
Encodage accents sur Prestashop Débuter en référencement 20 Septembre 2013
Comment transformer les accents par leur code grâce à .htaccess Netlinking, backlinks, liens et redirections 14 Mai 2013
Les accents dans la rédaction Débuter en référencement 15 Janvier 2013
Redirection 301 d'un nom de domaine avec accents (2012) URL Rewriting et .htaccess 16 Décembre 2012
Google+ ne lit pas les accents Google+ 13 Décembre 2012