Nettoyer un fichier TXT

malabarbe Messages postés 136 Statut Membre -  
kij_82 Messages postés 4102 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonsoir,

Comment en PHP, supprimer d'un fichier texte
les caractères en code exa : '0a' et '0d' ?

1 réponse

  1. kij_82 Messages postés 4102 Date d'inscription   Statut Contributeur Dernière intervention   857
     
    Bonjour,

    Il suffit de le parcourrir (lire), transformé ta donnée en Héxa suite à la lecture.
    Tu parcours ensuite ta chaine de caractère en Héxa, si tu rencontre un caractère non souhaité, tu ne fais rien, sinon tu écris le caractères dans un nouveau fichier (que tu as ouvert)

    Exemple de lecture :
    
      $fp=fopen($fichier,"r" );
      $contenu=fread($fp,filesize($fichier));
    
      // --- Si ton fichier d'origine n'est pas en héxa, tu le converti comme suit :  
      // --- ###
      $contenu_hexa="";
      $z = strlen($contenu);
      for($i=0;$i<$z;$i++)
        $contenu_hexa .= sprintf('%X',ord($contenu{$i}));
      // --- ###
      
      // --- Reste à parcourir ta chaine Héxa et faire une comparaison caractère par caractère 
      for($i=2;$i<strlent($contenu_hexa;$i+2){
         $char = substr($contenu_hexa,$i-2,$i);
         if ( $char != "0a" && $char != "0d" && $char != "0A" && $char != "0D" ){
            // --- écriture dans fichier de sortie
         }
      }
    


    C'est juste un exemple, il y a certainement mieux pour le faire, mais au moins ça te met sur la piste.
    0