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

Langage PHP Discussion :

Fonction rewrite url


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    408
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Mai 2003
    Messages : 408
    Par défaut Fonction rewrite url
    Bonsoir,

    Je suis à la recherche d'une fonction au bout de code qui permetrais de supprimer tous les accents d'une chaine, les caractères du genre oe, ç... et tous les caractères non alphanumérique afin de faire de la réécriture d'url, j'ai bien trouvé des petits bout de fonction mais cela ne fonctionne pas dans tous les cas

    voici ma dernière trouvail, un peu modifié déjà :
    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
    26
    27
    28
    29
    30
     
    function rewrite($texte)
    {
    // Définition des caracteres accentués
    $car_speciaux = array( 'A', 'Á', 'Â', 'A', 'Ä', 'A', 'A', 'a', 'á', 'â', 'a', 'ä', 'a', 'a', 'E', 'É', 'E', 'Ë', 'e', 'é', 'e', 'ë', 'I', 'Í', 'Î', 'I', 'i', 'í', 'î', 'i', 'O', 'Ó', 'Ô', 'O', 'Ö', 'O', 'o', 'ó', 'ô', 'o', 'ö', 'o', 'U', 'Ú', 'U', 'Ü', 'u', 'ú', 'u', 'ü', 'ß', 'Ç', 'ç', 'D', '?', 'N', 'n', '?', '?', 'Ý' );
    // ... et de leurs "équivalents" non-accentués
    $car_normaux = array( 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'E', 'E', 'E', 'E', 'e', 'e', 'e', 'e', 'I', 'I', 'I', 'I', 'i', 'i', 'i', 'i', 'O', 'O', 'O', 'O', 'O', 'O', 'o', 'o', 'o', 'o', 'o', 'o', 'U', 'U', 'U', 'U', 'u', 'u', 'u', 'u', 'B', 'C', 'c', 'D', 'd', 'N', 'n', 'P', 'p', 'Y' );
     
    // On commence par supprimer les accents
    $texte = str_replace($car_speciaux, $car_normaux, $texte);
     
    // On supprime les entités html
    $texte = strip_tags( $texte );
     
    // On remplace les caracteres non-alphanumériques par le séparateur $sep_mots
    $texte = preg_replace( "/[^A-Za-z0-9]+/", "-", $texte );
     
    // On supprime le séparateur s'il se trouve en début ou fin de chaîne
    $texte = trim( $texte, "-" );
    $texte = trim( $texte, "_" );
     
    // On limite la chaine a un nombre maxi de caracteres (ici 50 caracteres)
    $texte = substr( $texte, 0, 150 );
     
    // On convertit le tout en minuscules
    $texte = strtolower( $texte );
     
    // On retourne le résultat
    return ( $texte );
    }
    Mais celle ci ne s'occupe que des accents et encore le è n'est pas pris en compte car la fonction me retourne un -

    Merci d'avance pour votre aide
    bonne soirée
    @+
    ludo

  2. #2
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par lelectronique.com Voir le message
    Bonsoir,

    Mais celle ci ne s'occupe que des accents et encore le è n'est pas pris en compte car la fonction me retourne un -

    Merci d'avance pour votre aide
    bonne soirée
    @+
    ludo
    Je testes chez moi,ça marche super ?
    Quelle version de PHP tu as ?

    Ah mais autre chose, peux tu tester en appelant ta fonction toto

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    408
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Mai 2003
    Messages : 408
    Par défaut
    bonjour,
    j'utilise PHP 5.2
    merci

  4. #4
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par lelectronique.com Voir le message
    bonjour,
    j'utilise PHP 5.2
    merci
    Je ne vois pas pourquoi ça ne mrcherait pas !!

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    408
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Mai 2003
    Messages : 408
    Par défaut
    ben moi non plus regarde http://www.monde-du-velo.com/test.php

  6. #6
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par lelectronique.com Voir le message
    ben moi non plus regarde http://www.monde-du-velo.com/test.php
    Whaou mêm résultat pour moi et il est juste derriére
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $texte = preg_replace( "/[^A-Za-z0-9]+/", "-", $texte );

Discussions similaires

  1. Réponses: 4
    Dernier message: 23/05/2008, 13h58
  2. Hosteur.com Rewriting url
    Par gerald22mars dans le forum Hébergement
    Réponses: 0
    Dernier message: 27/10/2007, 02h11
  3. [URL Rewriting] URL non interprétées
    Par Mister Nono dans le forum Apache
    Réponses: 1
    Dernier message: 09/08/2007, 19h27
  4. Problème avec la fonction parse_url($URL);
    Par DanLM dans le forum Langage
    Réponses: 2
    Dernier message: 01/07/2007, 21h19
  5. Fonction retournant URL actuelle.
    Par Dayom dans le forum Langage
    Réponses: 4
    Dernier message: 25/11/2005, 16h11

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