Accès au manager - réservé aux membres

Navigation

Bouts de Codes PHP

Optimiser un chaine pour la réécriture d'URL

Informations sur le code source PHP

Ecrit par :  crocxx
Site de l'auteur Voir
Autres codes en PHP de l'auteur : [4] sources Voir
Date d'enregistrement du code le 22 Fév 2008 - Vu 1625 fois
Code source zippé: Télécharger le fichier ZIP
Impression: Imprimer le code
Ajouter la page à vos favoris
  Moyenne : 8 / 10 avec 1 vote

Description du code source

Informations sur le code source

Ce code est une petite fonction qui permet d'optimiser une chaine de caractère pour la placer dans une url, pour faire de la réécriture d'url (url rewriting) par exemple.

Code Source



.01
.02
.03
.04
.05
.06
.07
.08
.09
.10
.11
.12
.13
.14
.15
.16
.17
.18
.19
.20
.21
.22
.23
.24
.25
.26
.27
.28
.29
.30
.31
.32
.33
.34
.35
.36
.37
.38
.39
.40
.41
.42
.43
.44
.45
.46
.47
.48
.49
.50
.51
.52
.53
.54
 

<?php
/******************************************************************************/
/*                                                                            */
/*                       __        ____                                       */
/*                 ___  / /  ___  / __/__  __ _____________ ___               */
/*                / _ \/ _ \/ _ \_\ \/ _ \/ // / __/ __/ -_|_-<               */
/*               / .__/_//_/ .__/___/\___/\_,_/_/  \__/\__/___/               */
/*              /_/       /_/                                                 */
/*                                                                            */
/*                                                                            */
/******************************************************************************/
/*                                                                            */
/* Titre          : Optimiser un chaine pour la réécriture d'URL              */
/*                                                                            */
/* URL            : http://www.phpsources.org/scripts345-PHP.htm              */
/* Auteur         : crocxx                                                    */
/* Date édition   : 22 Fév 2008                                               */
/* Website auteur : http://www.zone-webmasters.net                            */
/*                                                                            */
/******************************************************************************/
?>
<?
function OptimiseUrl($chaine)
{    

    $chaine=strtolower($chaine);
    
    $accents = Array("/é/""/è/""/ê/""/ç/""/à/""/â/""/î/""/ï/""/ù/""/ô/");
    $sans = Array("e""e""e""c""a""a""i""i""u""o");
    
    $chaine preg_replace($accents$sans,$chaine);    
    
    
    $entre = array(' ''?''!''.'','':'"'"'&''('')''"','/');
    $sortie = array('-''-''-''-''-''-''-''-''-''-','-');
    $chaine str_replace($entre$sortie$chaine);
    
    
    $modifchaine=true;
    while($modifchaine==true) 
    {
        $modifchaine=false;
        
        if(ereg('--',$chaine))
        {
            $chaine str_replace('--','-',$chaine);
            $modifchaine=true;        
        }
    }
    
    return $chaine; 
}
?>

Fonctions du code source

Fonctions php / mysql PHP

  • strtolower : Renvoie une chaîne en minuscules - (PHP 4, PHP 5)
  • array : Crée un tableau - (PHP 4, PHP 5)
  • preg_replace : Rechercher et remplacer par expression rationnelle standard - (PHP 4, PHP 5)
  • str_replace : Remplace toutes les occurrences dans une chaîne - (PHP 4, PHP 5)
  • ereg : Expression rationnelle standard - (PHP 4, PHP 5)

Commentaire [1]

Invité
le 08/11/2008 à 23:32:00
Salut,

Une ch'tiote fonction trouvée sur WRI et qui s'avère très pratique. Elle renvoie l'url sous la forme exemple : news-43-la-lune-est-belle.html ou encore sir $id n'est pas renseigné, on écrira simplement news-la-lune-est-belle.html

Elle enlève les caractères spéciaux ainsi que les entités html & cie..

function rw( $name_module, $id, $texte )
{
// Définition des caractères accentués
$car_speciaux = array( 'À', 'Á', 'Â', 'Ã', 'Ä', 'Å', 'Æ', 'à', 'á', 'â', 'ã', 'ä', 'å', 'æ', 'È', 'É', 'Ê', 'Ë', 'è', 'é', 'ê', 'ë', 'Ì', 'Í', 'Î', 'Ï', 'ì', 'í', 'î', 'ï', 'Ò', 'Ó', 'Ô', 'Õ', 'Ö', 'Ø', 'ò', 'ó', 'ô', 'õ', 'ö', 'ø', 'Ù', 'Ú', 'Û', 'Ü', 'ù', 'ú', 'û', 'ü', 'ß', 'Ç', 'ç', 'Ð', 'ð', 'Ñ', 'ñ', 'Þ', 'þ', 'Ý' );
// ... 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 caractères 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, "-" );

// On limite la chaine à un nombre maxi de caractères (ici 50 caractères)
$texte = substr( $texte, 0, 50 );

// On convertit le tout en minuscules
$texte = strtolower( $texte );

// On ajoute l'id à la fin pour avoir une url unique et on ajoute l'extension (ici .html)
$texte = "$name_module".($id>0 ? '-'.$id : '')."-$texte.html";

// On retourne le résultat
return ( $texte );
}

Poster un commentaire

:P :) :wink: :lol: :surprised: :confused: :mad: :no:
Taille du texte:
Couleur:
Code de sécurité

Les dernières offres d'emploi