Utilisation de la fonction = utf8_encode( )

cs_vickos Messages postés 7 Date d'inscription lundi 2 février 2009 Statut Membre Dernière intervention 25 juin 2009 - 23 juin 2009 à 22:36
cs_vickos Messages postés 7 Date d'inscription lundi 2 février 2009 Statut Membre Dernière intervention 25 juin 2009 - 25 juin 2009 à 10:47
Bonjour a tous,
j'ai écrit un code qui permet de lire chaque ligne d'un fichier ou se trouve des caractères ISO.
Le but de ce code est de convertir les données extraites des fichiers et de les afficher au format utf8 avec la fonction php "utf8_encode( )".
Voici mon code :

<?php
            $dirname = 'Xml-date';
            $dir = opendir($dirname);
            $file = readdir($dir);
            while($file = readdir($dir))
            {
                $rssfile = array();
                $rssfile2 = array();
                $XML = array();
                if($file != '.' && $file != '..' && !is_dir($dirname.$file))
                {
 
                     if (!$fp = fopen("Xml-date/$file","r"))
                    {
                        echo "Echec de l'ouverture du fichier";
                        exit;
                    }
                    else
                    {
                   
                        while(!feof($fp))
                        {
                            $Ligne = fgets($fp,255);
                            $rssfile[] = $Ligne;
                            $rssfile2[] = utf8_encode($rssfile[]);
                           
                        }
                    fclose($fp);
                    echo "";
                    echo  "<title>$rssfile2[0]</title>";
                    echo "$rssfile2[5]";
                    echo "";
?>

Le problème est qui affiche un message d'erreur.
Deuxièmement,une fois ce problème réglé, comment faire pour afficher dans le code source de la page généré, les caractère aux format utf8.

Merci pour votre aide !

4 réponses

kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
23 juin 2009 à 22:50
Alors déjà c'est pas un fichier que tu semble lire mais plusieurs... ensuite si tu mettais l'erreur ça nous faciliterais peut être la tache... pour finir...

utf8_encode($rssfile[]);

Y a rien qui te choque ? à vu de nez je dirais...

$rssfile2[] = utf8_encode($Ligne);

@ tchaOo°
0
cs_vickos Messages postés 7 Date d'inscription lundi 2 février 2009 Statut Membre Dernière intervention 25 juin 2009
24 juin 2009 à 10:24
Merci pour ton aide.
Cependant j'aimerai convertir du caractère du format ISO en UTF8.Ici, une fois le code corrigé, cela me donne du code html.
C'est a dire que dans le fichier, il y a du caractère ISO.
Je veux convertir par exemple :
                         &Agrave; ===> &#192;       
                       &Egrave; ===> &#200;
  Je pensais justement que la fonction utf8_encode le ferais automatiquement .
Merci pour votre aide .
0
nautilus99 Messages postés 661 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 18 septembre 2009 1
25 juin 2009 à 01:22
et tout bêtement:

$FileToconvert =  "menu.xml";

$FileConverted = "menu2.xml";


echo "Converting $FileToconvert ...";


file_put_contents($FileConverted, iconv("ISO-8859-1","UTF-8",file_get_contents($FileToconvert))); 


echo "File converted in $FileConverted";


ne serait pas plus simple que de construire une usine à gaz ?

Syntaxe de iconv:
string iconv
( string<tt class ="parameter">$in_charset</tt>
, string<tt class="parameter">$out_charset</tt>
, string<tt class="parameter">$str</tt>
)
0
cs_vickos Messages postés 7 Date d'inscription lundi 2 février 2009 Statut Membre Dernière intervention 25 juin 2009
25 juin 2009 à 10:47
Merci beaucoup pour ton code et votre aide !
J'ai finalement trouver une autre solution grâce a la fonction str_replace( ) .
0
Rejoignez-nous