Marre un coup utf8 un coup iso

Description

Bon alors comme la migration des scripts de l'utf8 a l'iso n'est pas encore finit, j'ai essayé de faire un convertisseur qui analyse l'encodage de la chaine est fait la conversion necessaire.

La seule chose pour avoir des caractères corrects c'est donc de connaitre quel est la sortie (http-equiv final)

Cas 1 vous souhaitez une sortie en utf-8 a partir de sources mixtes, alors utilisés :
stringConverter_utf8
Et en iso-8859-1 :
stringConverter_iso

Source / Exemple :


<?php
/**

  • Transforme toutes les chaines qu'elles soit utf8 ou iso en utf8
  • /
class stringConverter_utf8 extends stringConverter { function convertString($string) { if ($this->string_type == 'utf-8') return $string; else return utf8_encode($string); } } /**
  • Transforme touT en iso
  • /
class stringConverter_iso extends stringConverter { function convertString($string) { if ($this->string_type == 'utf-8') return utf8_decode($string); else return $string; } } class stringConverter { var $string_type = ''; //Type d'encodage var $utf = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789²&é"\'(-è_çà)=~#{[|`\^@]}¨^$£¤ù%*µ!§:/;.?,<>?îïâûü&#968;&#936;&#969;&#937;&#935;&#967;&#934;&#966;ÛÊËÜÏÎñÑõÕ??¾½¼³¹º±×÷ÁáÀÂÅåãÃäÄæÆçÇéÉÈÌíÍìøØßÿ´`&#945;&#913;&#946;&#914;&#947;&#915;&#948;&#916;&#949;&#917;&#950;&#918;&#951;&#919;&#952;&#920;&#953;&#921;&#954;&#922;&#955;&#923;&#956;&#924;&#957;&#925;&#958;&#926;&#959;&#927;&#960;&#928;&#961;&#929;&#963;&#962;&#931;&#964;&#932;&#965;&#933;??¡¿&¢©µ·¶£®§¥?"«»?'; function __construct(){ $this->utf8_caracteres= preg_split('//', $this->utf, -1, PREG_SPLIT_NO_EMPTY); } function analyse($string) { $this->chars = preg_split('//', $string, -1, PREG_SPLIT_NO_EMPTY); foreach($this->chars as $char) { if ($this->string_type == '') $this->string_type = $this->analyseChar($char); else{ $s=$this->convertString($string); $analyser->string_type=''; return $s; } } return $string; } protected function analyseChar($char) { if (utf8_encode($char) == utf8_decode($char)) return $this->string_type; if (in_array($char,$this->utf8_caracteres)) return 'utf-8'; return 'iso-8859-1'; } } ?>

Conclusion :


A venir si j'y arrive un detecteur automatique de la sortie

Petit truc pour convertir un fichier complètement mélangé
<?php
function convertstr($buf)
{
require_once 'analyser.php';
$analyser = new stringConverter_iso;
$bufs = preg_split('/ /', $buf, -1, PREG_SPLIT_NO_EMPTY); //Sépare les mots
$outpout=array();
foreach($bufs as $mot) {
$outpout[]=$analyser->analyse($mot);
//$buf.=$mot.'->'.$analyser->string_type.'='.$analyser->analyse($mot).' <br />';
}

$outpout=implode(' ',$outpout);
return $outpout;
}

ob_start('convertstr');

?>
Votre page qui ressemble a rien la !
<?php
ob_end_flush();

?>

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.