Partage
  • Partager sur Facebook
  • Partager sur Twitter

Convertir des fichiers iso en utf-8

Sujet résolu
Anonyme
    25 juin 2010 à 19:29:20

    Bonjour.

    J'ai lu ce tuto :
    http://www.siteduzero.com/tutoriel-3-1 [...] -unicode.html

    J'ai donc utilisé son 2e script :
    <?php
        function encoderDossier ($dossierAEncoder)
        {
            $dossier = opendir ($dossierAEncoder);
            
            while ($fichierAEncoder = readdir ($dossier))
            {
                if ($fichierAEncoder != '.' AND $fichierAEncoder != '..')
                {
                    if (is_file ($fichierAEncoder))
                    {
                        $contenu = file_get_contents ($fichierAEncoder);
                        $fichier = fopen ($fichierAEncoder, 'w');
                        fputs ($fichier, html_entity_decode (utf8_encode ($contenu)));
                        fclose ($fichier);
                    }
                    
                    else
                        encoderDossier ($dossierAEncoder . $fichierAEncoder . '/');
                }
            }
            
            closedir ($dossier);
        }
        
        encoderDossier ('./');
    ?>
    


    Mais, il ne m'a rien encodé et m'a mis un tas d'erreur et m'a vidé index.php :( .
    Voila le début des erreurs (je ne peux pas tout mettre c'ets troop long) :

    Citation

    Warning: opendir(./commun/site/equipe/rayquaza/avatar_rayquaza.png/) [function.opendir]: failed to open dir: Not a directory in /www/nicorobin/utf8-encode.php on line 4

    Warning: readdir(): supplied argument is not a valid Directory resource in /www/nicorobin/utf8-encode.php on line 6

    Warning: closedir(): supplied argument is not a valid Directory resource in /www/nicorobin/utf8-encode.php on line 23

    Warning: opendir(./commun/site/include/autres/head-body.php/) [function.opendir]: failed to open dir: Not a directory in /www/nicorobin/utf8-encode.php on line 4

    Warning: readdir(): supplied argument is not a valid Directory resource in /www/nicorobin/utf8-encode.php on line 6

    Warning: closedir(): supplied argument is not a valid Directory resource in /www/nicorobin/utf8-encode.php on line 23

    Warning: opendir(./commun/site/include/autres/html_langue.php/) [function.opendir]: failed to open dir: Not a directory in /www/nicorobin/utf8-encode.php on line 4



    Avez vous un autre script ou un programme ?

    Merci.
    • Partager sur Facebook
    • Partager sur Twitter
      25 juin 2010 à 22:52:32

      C'est juste que le nom du dossier que tu soumet est mauvais!

      Il faut le path exact.. Php le dit
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        25 juin 2010 à 23:43:28

        Qu'est ce que je suis bête.

        Il continue de me supprimmer index.php et me met des erreurs (sans rien encoder du tout), voici les premières :

        Citation

        Warning: opendir(/www/nicorobin/commun/site/equipe/rayquaza/avatar_rayquaza.png/) [function.opendir]: failed to open dir: Not a directory in /www/nicorobin/utf8-encode.php on line 4

        Warning: readdir(): supplied argument is not a valid Directory resource in /www/nicorobin/utf8-encode.php on line 6

        Warning: closedir(): supplied argument is not a valid Directory resource in /www/nicorobin/utf8-encode.php on line 23

        Warning: opendir(/www/nicorobin/commun/site/include/autres/head-body.php/) [function.opendir]: failed to open dir: Not a directory in /www/nicorobin/utf8-encode.php on line 4

        Warning: readdir(): supplied argument is not a valid Directory resource in /www/nicorobin/utf8-encode.php on line 6

        Warning: closedir(): supplied argument is not a valid Directory resource in /www/nicorobin/utf8-encode.php on line 23

        Warning: opendir(/www/nicorobin/commun/site/include/autres/html_langue.php/) [function.opendir]: failed to open dir: Not a directory in /www/nicorobin/utf8-encode.php on line 4

        Warning: readdir(): supplied argument is not a valid Directory resource in /www/nicorobin/utf8-encode.php on line 6

        Warning: closedir(): supplied argument is not a valid Directory resource in /www/nicorobin/utf8-encode.php on line 23

        Warning: opendir(/www/nicorobin/commun/site/include/autres/meta.php/) [function.opendir]: failed to open dir: Not a directory in /www/nicorobin/utf8-encode.php on line 4



        Une image ne peut pas être encodé en ut-8, non ?
        Quelqu'un a une idée ?


        Merci.
        • Partager sur Facebook
        • Partager sur Twitter
          26 juin 2010 à 0:10:56

          Une image n'est pas "encodée"... L'encodage c'est pour les fichiers contenant des caractères.
          Tu fais en sorte que le script saute les images (en fonction des extensions du fichier), et basta.
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            26 juin 2010 à 8:54:42

            Je ne suis pas très fort en PHP.
            Le script était sur le tuto.

            Quelqu'un pour me donner un script ou un programme qui fait la même chose, mais juste sans les .jpg, .png et .gif ?

            Merci.
            • Partager sur Facebook
            • Partager sur Twitter
              26 juin 2010 à 9:34:52

              <?php
                              if (is_file ($fichierAEncoder))
                              {
                               if(!in_array(strtolower(pathinfo($fichierAEncoder, PATHINFO_EXTENSION)), array('gif', 'png', 'jpg'))){ /* Ajout */
                                  $contenu = file_get_contents ($fichierAEncoder);
                                  $fichier = fopen ($fichierAEncoder, 'w');
                                  fputs ($fichier, html_entity_decode (utf8_encode ($contenu)));
                                  fclose ($fichier);
                               } // Ajout
                              }
              
              • Partager sur Facebook
              • Partager sur Twitter
              Erreur PDO - Installation Wamp - Docs PHP et MYSQL.
              Anonyme
                26 juin 2010 à 9:52:30

                Il met les mêmes (dont celle de l'image) et me vide mon index :( .

                Quelqu'un a une solution ?

                Merci.
                • Partager sur Facebook
                • Partager sur Twitter
                  28 juin 2010 à 22:45:38

                  T'as mal adapté la solution de b(dav car celle-ci est parfaitement adapté à ce que tu recherches. A savoir que l'encodage ne se fera que si et seulement si l'extension du fichier n'est pas présente dans l'array fourni à in_array
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Anonyme
                    28 juin 2010 à 23:20:11

                    Que veux tu dire par mal adapté, j'ai fait un copier-coller (tous en gardant la fonction et les autres lignes) ?

                    Voila le code :
                    <?php
                        function encoderDossier ($dossierAEncoder)
                        {
                            $dossier = opendir ($dossierAEncoder);
                            
                            while ($fichierAEncoder = readdir ($dossier))
                            {
                                if ($fichierAEncoder != '.' AND $fichierAEncoder != '..')
                                {
                                    if (is_file ($fichierAEncoder))
                                    {
                                     if(!in_array(strtolower(pathinfo($fichierAEncoder, PATHINFO_EXTENSION)), array('gif', 'png', 'jpg')))
                    				 {
                                        $contenu = file_get_contents ($fichierAEncoder);
                                        $fichier = fopen ($fichierAEncoder, 'w');
                                        fputs ($fichier, html_entity_decode (utf8_encode ($contenu)));
                                        fclose ($fichier);
                                     }
                                    }
                                    
                                    else
                                        encoderDossier ($dossierAEncoder . $fichierAEncoder . '/');
                                }
                            }
                            
                            closedir ($dossier);
                        }
                        
                        encoderDossier ('/www/nicorobin/');
                    ?>
                    


                    Je me suis acharné pendant ce week-end à tous ré-encoder à la main XD Mais j'ai du en oublier, donc le script m'intéresse.

                    Pour la BDD, tout a été converti.

                    Merci.
                    • Partager sur Facebook
                    • Partager sur Twitter
                      1 juillet 2010 à 14:30:11

                      Salut,

                      Moi aussi j'ai pris le script du tuto et j'ai eu la même erreur.
                      En fait, ça vient des lignes :

                      <?php if (is_file ($fichierAEncoder))
                                      {
                      			//
                                          $contenu = file_get_contents ($fichierAEncoder);
                                          $fichier = fopen ($fichierAEncoder, 'w');
                      

                      puisqu'il ne faut pas mettre <?php $fichierAEncoder ?> mais <?php $dossierAEncoder.$fichierAEncoder?> pour être au bon emplacement du fichier ;)

                      Bref, le code chez moi qui marche :
                      <?php
                      function encoderDossier ($dossierAEncoder)
                      {
                      	$dossier = opendir ($dossierAEncoder);
                      	
                      	while ($fichierAEncoder = readdir ($dossier))
                      	{
                      		if ($fichierAEncoder != '.' AND $fichierAEncoder != '..')
                      		{
                      			echo '	=> '.$dossierAEncoder.$fichierAEncoder.'<br />';
                      			if (is_file ($dossierAEncoder.$fichierAEncoder))
                      			{
                      				$contenu = file_get_contents ($dossierAEncoder.$fichierAEncoder);
                      				$fichier = fopen ($dossierAEncoder.$fichierAEncoder, 'w');
                      				fputs ($fichier, html_entity_decode (utf8_encode ($contenu)));
                      				fclose ($fichier);
                      				echo $dossierAEncoder.$fichierAEncoder.' a été encodé .<br />';
                      			}
                      			
                      			elseif (is_dir($dossierAEncoder . $fichierAEncoder))
                      				encoderDossier ($dossierAEncoder . $fichierAEncoder . '/');
                      		}
                      	}
                      	
                      	closedir ($dossier);
                      }
                      


                      • Partager sur Facebook
                      • Partager sur Twitter
                      Anonyme
                        2 juillet 2010 à 15:04:34

                        Ton script marche bien.
                        Mais il fait buger les fichier déja encodé :( .
                        • Partager sur Facebook
                        • Partager sur Twitter
                          2 juillet 2010 à 16:17:47

                          ah oui, c'est moyen ça :p

                          Bon bref, voilà le code retapé avec vérification que le fichier n'est pas déjà encodé en utf-8:

                          <?php
                          	function encoderDossier ($dossierAEncoder)
                          	{
                          		$dossier = opendir ($dossierAEncoder);
                          		
                          		while ($fichierAEncoder = readdir ($dossier))
                          		{
                          			if ($fichierAEncoder != '.' AND $fichierAEncoder != '..')
                          			{
                          				echo '	=> '.$dossierAEncoder.$fichierAEncoder.'<br />';
                          				if (is_file ($dossierAEncoder.$fichierAEncoder) && in_array(strtolower(pathinfo($fichierAEncoder, PATHINFO_EXTENSION)), array('php', 'html', 'txt', 'ini')))
                          				{
                          					$contenu = file_get_contents ($dossierAEncoder.$fichierAEncoder);
                          					$encodage = mb_detect_encoding($contenu, 'auto');
                          					if ($encodage != 'UTF-8')
                          					{
                          						$fichier = fopen ($dossierAEncoder.$fichierAEncoder, 'w');
                          						fputs ($fichier, html_entity_decode (utf8_encode ($contenu)));
                          						fclose ($fichier);
                          						echo $dossierAEncoder.$fichierAEncoder.' a été encodé, il était encodé en '.$encodage.'.<br />';
                          					}
                          					else echo $dossierAEncoder.$fichierAEncoder.' n\'a pas été encodé puisqu\'il était déjà en utf-8.<br />';
                          				}
                          				
                          				elseif (is_dir($dossierAEncoder . $fichierAEncoder))
                          					encoderDossier ($dossierAEncoder . $fichierAEncoder . '/');
                          			}
                          		}
                          		
                          		closedir ($dossier);
                          	}
                          
                          • Partager sur Facebook
                          • Partager sur Twitter
                          Anonyme
                            9 août 2010 à 19:23:54

                            Bonjour, je suis également intéréssé par ce sujet, en plus le code fournis semble être complet. J'ai également lu le tuto.
                            Mais on dirait que l'encodage ne se fait pas, car en ouvrant un fichier qui devrait maintenant être encodé en utf8, il est dit que ce dernier est toujours encodé en ansi avec notepadd++

                            Quelqu'un aurait une idée du problème ?
                            • Partager sur Facebook
                            • Partager sur Twitter

                            Convertir des fichiers iso en utf-8

                            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                            • Editeur
                            • Markdown