Vous êtes ici Codes PHP et MySQL > Chaînes > Optimiser un chaine pour la réécriture d'URL

 

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

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.
 
crocxx
Site de l'auteur voir
[4] sources en PHP voir
Code vu 4810 fois
Enregistré le 22 Fév 2008
  • Digg ce code sur digg.com
  • Bookmark ce code sur del.icio.us
  • Bookmark ce code sur Google
  • Bookmark ce code sur Yahoo
  • Ajoute Optimiser un chaine pour la réécriture d'URL
  • Partage ce code sur Facebook
 
 
 
 

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

: Renvoie une chaîne en minuscules - (PHP 4, PHP 5)
: Crée un tableau - (PHP 4, PHP 5)
: Rechercher et remplacer par expression rationnelle standard - (PHP 4, PHP 5)
: Remplace toutes les occurrences dans une chaîne - (PHP 4, PHP 5)
: Expression rationnelle standard - (PHP 4, PHP 5)
Commentaire
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 );
}
 
Ajouter un commentaire
Code de sécurité

Attention: Les champs marqués d'une étoile * sont obligatoires
 
Librairie PHP

Connexion

 
 

Chaînes

 
 

PHP

 
 
 
PHP 5 & SQL Livre PHP

PHP 5 & SQL
 
    Offres d'emploi

Plus de 500 offres d'emploi PHP/MySQL

Offres d'emploi
 
    Editeur PHP
 
        Publicité