Overview

Packages

  • Framework
  • None
  • PHP
  • Utilitaire

Classes

  • Chaine
  • Encodage
  • Fichier
  • Pattern
  • Tableau
  • Overview
  • Package
  • Class
  • Tree
  • Deprecated
  • Todo
 1: <?php
 2: // declare(encoding='UTF-8');
 3: /**
 4:  * Classe fournissant des méthodes statiques concernant l'encodage et le décodage des caractères de variable.
 5:  *
 6:  * @category    PHP 5.2
 7:  * @package Utilitaire
 8:  * @author      Jean-Pascal MILCENT <jpm@tela-botanica.org>
 9:  * @copyright   Copyright (c) 2009, Tela Botanica (accueil@tela-botanica.org)
10:  * @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
11:  * @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2 
12:  * @version $Id: Encodage.php 299 2011-01-18 14:03:46Z jpm $
13:  * @link        /doc/framework/
14:  */
15: class Encodage {
16:     /**
17:      * Méthode permettant d'encoder par défaut de ISO-8859-15 vers UTF-8 une variable ou un tableau de variables.
18:      *
19:      * @param mixed la chaine ou le tableau à encoder en UTF-8 depuis ISO-8859-15.
20:      * @param string l'encodage d'origine si ce n'est pas ISO-8859-15.
21:      * @return mixed la chaine ou le tableau encodé en UTF-8.
22:      * @access protected
23:      */
24:     public static function encoderEnUtf8(&$variable, $encodage = 'ISO-8859-15') {
25:         //echo print_r($variable, true)."\n";
26:         if (is_array($variable)) {
27:             foreach ($variable as $c => $v) {
28:                 $variable[$c] = self::encoderEnUtf8($v);
29:             }
30:         } else {
31:             // Nous vérifions si nous avons un bon encodage UTF-8
32:             if (!is_numeric($variable) && !empty($variable) && !self::detecterUtf8($variable)) { 
33:                 // Les nombres, les valeurs vides et ce qui est déjà en UTF-8 ne sont pas encodés.
34:                 $variable = mb_convert_encoding($variable, 'UTF-8', $encodage);
35:             }
36:         }
37:         return $variable;
38:     }
39:     
40:     /**
41:      * Méthode permettant de détecter réellement l'encodage UTF-8.
42:      * mb_detect_encoding plante si la chaine de caractère se termine par un caractère accentué.
43:      * Provient de  PHPDIG.
44:      * 
45:      * @param string la chaine à vérifier.
46:      * @return bool true si c'est de UTF-8, sinon false.
47:      * @access private
48:      */
49:     public static function detecterUtf8($chaine) {
50:         if ($chaine === mb_convert_encoding(mb_convert_encoding($chaine, 'UTF-32', 'UTF-8'), 'UTF-8', 'UTF-32')) {
51:             return true;
52:         } else {
53:             return false;
54:         }
55:     }
56: }
57: ?>
TBFramework - v0.3 API documentation generated by ApiGen 2.8.0