Nettoyer un fichier TXT

malabarbe Messages postés 136 Statut Membre -  
kij_82 Messages postés 4260 Statut Contributeur -
Bonsoir,

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

1 réponse

kij_82 Messages postés 4260 Statut Contributeur 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