22 Fév 2008
Test une chaine pour savoir si c'est de l'UTF8 via PHP
Compatibilité : PHP 5, PHP 7, PHP 8
Pour vos passages de la norme ISO à la norme UTF8, test utile pour savoir si vous devez ou non ré encoder en UTF8
Ce code est une fonction qui permet d'optimiser une chaine de caractère pour la placer dans une url, afin de faire de la réécriture d'url (url rewriting) et de jolies URLs.
|
|
| Détail | php.net | Description |
Versions PHP |
|---|---|---|---|
| array | Crée un tableau |
PHP 4, 5, 7 et 8 | |
| echo | Affiche une chaîne de caractères |
PHP 4, 5, 7 et 8 | |
| preg_match | Expression rationnelle standard |
PHP 4, 5, 7 et 8 | |
| preg_replace | Rechercher et remplacer par expression rationnelle standard |
PHP 4, 5, 7 et 8 | |
| return | Retourne le controle du programme au module appelant. |
PHP 4, 5, 7 et 8 | |
| strtolower | Renvoie une chaîne en minuscules |
PHP 4, 5, 7 et 8 | |
| str_replace | Remplace toutes les occurrences dans une chaîne |
PHP 4, 5, 7 et 8 | |
Pour vos passages de la norme ISO à la norme UTF8, test utile pour savoir si vous devez ou non ré encoder en UTF8
Fonction qui permet de réécrire les URL en remplaçant tous les caractères spéciaux et les accents par un tiret (-)
Fonction simple qui réécrit une url en friendly url. Cette fonction ne prend pas en compte les caractères spéciaux.
Avoir la capacité de remplacer rapidement une chaine ou un tableau. En toute simplicité avec la fonction str_replace().
Une classe objet pour générer des fichiers XML. Avec un exemple d'utilisation pour générer un fichier XML.
Invité
08 Nov 2008 à 23:32Salut,
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 );
}