Problème fonction URL compatible.

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par Eremes, 18 Août 2010.

  1. Eremes
    Eremes Nouveau WRInaute
    Inscrit:
    10 Juin 2010
    Messages:
    12
    J'aime reçus:
    0
    Bonsoir.

    Voilà, sur mon forum, j'ai récemment fait en sorte que l'url des topics aient le titre du topic dans l'URL. Le problème, c'est que les lettre a accents ne sont pas transformées en lettres simples mais sont remplacées par des tirets. :(

    Voilà la fonction que j'utilise :

    Code:
    	// Formate un texte pour le transformer en URL-compatible
    	function formatLink($string,$majuscules=false) {
    	$string = strtr($string,
            'ŠŽšžŸÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÑÒÓÔÕÖØÙÚÛÜÝàáâãäåçèéêëìíîïñòóôõöøùúûüýÿ?$,&:()!{}."§_#=/\\;°',
            'szszyaaaaaaceeeeiiiinoooooouuuuyaaaaaaceeeeiiiinoooooouuuuyy---------------------');
    	$string = strtr($string,
            array('Þ' => 'TH', 'þ' => 'th', 'Ð' => 'DH', 'ð' => 'dh', '@'=>'-at-',
              'ß' => 'ss', 'Œ' => 'OE', 'œ' => 'oe', 'Æ' => 'AE',
              'æ' => 'ae', 'µ' => 'u', '+' => '-', 'amp' => 'et'));
        $string = preg_replace('|[^A-Z-]|i', '-', $string);
        $string = preg_replace('|[\-]+|i', '-', $string);
        $string = preg_replace('|-$|i', '', $string);
        if(empty($string)) return '-';
        return ($majuscules?$string:strtolower($string));
    	}
    Des idées ? :(

    merci !
     
  2. KOogar
    KOogar WRInaute accro
    Inscrit:
    16 Novembre 2004
    Messages:
    4 643
    J'aime reçus:
    82
    tu as peut-etre un problème autre part comme au niveau de ton fichier .htaccess, tu peux mettre une url qui plante pour voir ? car j'ai testé ta fonction et les accents semblent etre correctement gérer
    Code:
    <?php echo formatLink("hello_Mr+l'éléphant"); ?>
    retourne bien :  hello-mr-l-elephant
    
     
  3. Eremes
    Eremes Nouveau WRInaute
    Inscrit:
    10 Juin 2010
    Messages:
    12
    J'aime reçus:
    0
    Ok merci pour ta réponse.

    Un exemple : topic-1795-1-r-gle-du-forum-de-pr-sentation.html

    Peut-être que ça vient de l'encodage en UTF-8 ?

    Sinon la ligne de mon .htaccess qui gère ça est :
    Code:
    RewriteRule ^(.*)-([0-9]+)-([0-9]+)-([a-z0-9A-Z-]+)\.html$ /$1.php?id=$2&page=$3&titre=$4 [L]
     
  4. KOogar
    KOogar WRInaute accro
    Inscrit:
    16 Novembre 2004
    Messages:
    4 643
    J'aime reçus:
    82
    ca doit venir de l'encodage en utf8, re encode en latin, donc decode l'utf8 :)
    $url = utf8_decode($url);

    tu peux également le mettre directement au début de ta fonction

    function formatLink($string,$majuscules=false) {
    $string = utf8_decode($string);
    ...
     
  5. Sullyvan
    Sullyvan WRInaute discret
    Inscrit:
    20 Mai 2008
    Messages:
    85
    J'aime reçus:
    0
    oui c'est un problème typique d'encodage ou les lettres accentuées sont représentées par un ? et donc remplacées par un - (la fonction fonctionne donc bien)

    la solution de KOogar devrait corriger le problème, tu peux aussi forcer la conversion lors de la connexion à la base de données ça évite de se poser trop de questions, mais ça va influer sur tout ton forum et donc tu risques d'avoir des soucis ailleurs..
     
  6. Eremes
    Eremes Nouveau WRInaute
    Inscrit:
    10 Juin 2010
    Messages:
    12
    J'aime reçus:
    0
    Je vais essayer, mais il me semble avoir déjà essayé, enfin on verra.

    Merci pour vos réponses ! :)

    Edit : Rah ça marche toujours pas, j'ai placé
    Code:
    $string = utf8_decode($string);
    au début de la fonction, sans succès ...
     
  7. Sullyvan
    Sullyvan WRInaute discret
    Inscrit:
    20 Mai 2008
    Messages:
    85
    J'aime reçus:
    0
    as tu essayé de faire un echo de string avant tout traitement ?

    il est possible que ta chaine "ŽšžŸÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÑÒÓÔÕÖØÙÚÛÜÝàáâãäåçèéêëìíîïñòóôõöøùúûüýÿ?$,&:()!{}."§_#=/\\;°" aussi soit mal encodée, peut-etre qu'un utf8_decode('ŽšžŸÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÑÒÓÔÕÖØÙÚÛÜÝàáâãäåçèéêëìíîïñòóôõöøùúûüýÿ?$,&:()!{}."§_#=/\\;°") dans le strstr peut regler la chose..
     
  8. Eremes
    Eremes Nouveau WRInaute
    Inscrit:
    10 Juin 2010
    Messages:
    12
    J'aime reçus:
    0
    Merci Sullyvan ! Ca marche a présent, j'ai mis un utf8_decode au début des caractères spéciaux :)

    Merci pour ton aide :)
     
Chargement...
Similar Threads - Problème fonction compatible Forum Date
Problème sur jquery avec fonction asynchrone Développement d'un site Web ou d'une appli mobile 6 Septembre 2022
Problème de fonctions synchrone/asynchrone Développement d'un site Web ou d'une appli mobile 24 Janvier 2021
probleme avec fonction else if Développement d'un site Web ou d'une appli mobile 12 Mars 2016
Probleme avec les fonctions {if}{else if}{else} Développement d'un site Web ou d'une appli mobile 8 Mai 2015
Problème indexation avec snapshot html. Fonctionne à moitié. Besoin d'aide !! Problèmes de référencement spécifiques à vos sites 6 Janvier 2015
probleme fonctionnement script Développement d'un site Web ou d'une appli mobile 4 Janvier 2015
problème fonction e-commerce Google Analytics 25 Octobre 2012
Problème chez Online avec la fonction mail Développement d'un site Web ou d'une appli mobile 31 Août 2010
problème fonction mail Administration d'un site Web 6 Avril 2010
Probleme avec la fonction time() Développement d'un site Web ou d'une appli mobile 12 Février 2010
Problème avec la fonction include Développement d'un site Web ou d'une appli mobile 7 Décembre 2009
Problème fonction mail() : email envoyé 3 fois. Développement d'un site Web ou d'une appli mobile 27 Avril 2009
Problème avec mes fonctions latex sur mon site URL Rewriting et .htaccess 17 Novembre 2008
Joomla, probleme d'affichage en fonction de la resolution Développement d'un site Web ou d'une appli mobile 3 Octobre 2008
Problème fonction date à devenir fou Développement d'un site Web ou d'une appli mobile 31 Mai 2008
fonction mail() pour php : probleme fichiers joints Développement d'un site Web ou d'une appli mobile 28 Février 2008
probleme avec boucle While et fonction php mail() Développement d'un site Web ou d'une appli mobile 25 Octobre 2007
Problème de style avec la fonction mail() [résolu] Développement d'un site Web ou d'une appli mobile 17 Octobre 2007
problème avec le paramètre from de la fonction mail() Développement d'un site Web ou d'une appli mobile 24 Septembre 2007
[Résolu]Problème menu en fonction du naviguateur Développement d'un site Web ou d'une appli mobile 30 Juin 2007