geek space web solutions

utf8 : substr ou mb_substr

Mercredi, 12 Mai 2010 22:44
Le codage en utf-8 c'est bien mais ça donne quand même parfois quelques soucis... Prenons par exemple la bonne vieille fonction php substr. Cette fonction ne génère pas de l'utf-8...

L'UTF-8 (UCS transformation format 8 bits) est un format de codage de caractères. Il permet de gérer tous les caractères dits "unicodes". Il permet de représenter des milliers de caractères. Unicode est une norme qui a été inventé pour donner à tous les caractères de n'importe quel langage un identifiant unique. Ainsi la dernière version d'Unicode représente 137 468 caractères.

Vous trouverez souvent sur des forums la fonction équivalente de substr qui est mb_substr. Les fonctions commençant par mb_* font partie des "Fonctions sur les chaînes de caractères multi-octets"...
La fonction mb_substr comporte un 4ème paramètre optionnel qui permet de préciser quel codage de sortie nous voulons...
$new_string = mb_substr($string, $start, $end, 'UTF-8');

Problème :

Il arrive qu'on ne puisse pas utiliser la fonction mb_substr (et toutes les fonctions php mb_*) selon les configurations des serveurs : si php_mbstring est activé ou non dans les extensions php du serveur. Par exemple chez free.fr cette extension ne semble pas activée...

Solution :

La fonction suivante est une solution alternative à mb_substr :
function substru($str, $from, $len){ 
return preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'. $from .'}'.
'((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'. $len .'}).*#s','$1', $str);
}

Cas particulier de Joomla :

Pour gérer au mieux l'utf-8, Joomla possède apparemment son propre noyeau mbstring ! Il n'est donc pas utile de s'embêter à utiliser les fonctions précitées pour Joomla.
Utilisez les fonctions suivantes pour manipuler les chaînes de caractères en utf-8 dans joomla :

utf8_substr
utf8_strpos
utf8_strrpos
utf8_strtolower
utf8_strtoupper
utf8_strlen
 

Ajouter un Commentaire


Code de sécurité
Rafraîchir

Sections

Éditeur de fichier XML en ligne


"XML Manager" est un éditeur sécurisé permettant d'administrer en ligne un fichier XML.
Il fournit des fonctions avancées de recadrage et de redimensionnement des images...

Sondages

Pensez-vous que le HTML5 puisse complètement remplacer Flash ?
 
Seriez-vous intéressé par un éditeur d'XML en ligne ?
 

Paypal

paypal

Code du plugin Joomla AutoSEO 1.2 par www.geek-space.fr