Nettoyer un fichier TXT

Fermé
malabarbe Messages postés 127 Date d'inscription jeudi 20 septembre 2007 Statut Membre Dernière intervention 14 septembre 2016 - 1 nov. 2009 à 20:34
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 - 2 nov. 2009 à 14:07
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 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
2 nov. 2009 à 14:07
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