1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180
| function ecrire_fichier($nom_fichier, $chaine_a_ecrire, $fin_de_ligne)
{
// Ouverture fichier en lecture et ecriture
$fp = fopen ($nom_fichier, "a+");
// on écrit
if ($fin_de_ligne == true)
{
fputs ($fp, '|'.$chaine_a_ecrire."\n");
}
else
{
fputs ($fp, '|'.$chaine_a_ecrire);
}
// on ferme le fichier
fclose ($fp);
/*$ptr_fich = fopen($nom_fichier, "r");
if (FALSE === $ptr_fich)
{
exit("<br> <br>erreur lors de l'ouverture du fichier !!!!<br>");
}
$contenu = fread($ptr_fich, filesize($nom_fichier));
echo ("<br><br>ecrire_fichier contenu VERIFIE: ").$contenu;
fclose($ptr_fich);*/
}
//ecrire chaine_a_ecrire dans une colonne du fichier bdd.csv
function ecrire_fichier_colonne($nom_fichier, $chaine_a_ecrire, $NoColonne, $fin_de_ligne)
{
//lire la dernière ligne
$ptr_new = fopen($nom_fichier, "r");
if (FALSE === $ptr_new)
{
exit("<br> <br>erreur lors de l'ouverture du fichier !!!!<br>");
}
$contenu = fread($ptr_new, filesize($nom_fichier));
echo ("<br><br>ecrire_fichier_colonne contenu: ").$contenu;
$nb_ligne_fichier = substr_count($contenu, "\n");
//echo ("<br><br><br>ecrire_fichier_colonne nb_ligne_fichier: ").$nb_ligne_fichier;
/* On a plus besoin du pointeur */
fclose($ptr_new);
$contenu = explode("\n", $contenu); /* PHP_EOL contient le saut à la ligne utilisé sur le serveur (\n linux, \r\n windows ou \r Macintosh */
echo ("<br><br>ecrire_fichier_colonne AVANT contenu[0]: ").$contenu[0];
//echo ("<br><br>ecrire_fichier_colonne AVANT contenu[1]: ").$contenu[1];
//echo ("<br><br>ecrire_fichier_colonne AVANT contenu[2]: ").$contenu[2];
//*********affecter à contenu[i] la ligne i séparée par le caractère '\n'
$chaine_etudiee = $contenu[0];
$position_slash_n = false;
$position_slash_n = strpos($chaine_etudiee,"\n");
$j=0;
$der_ligne = $contenu[0];
while($position_slash_n != false)
{
$contenu[$j] = substr($chaine_etudiee,0,$position_slash_n);
if($contenu[$j] != "")
{
$der_ligne = $contenu[$j];
echo "der_ligne: $j ".$der_ligne;
}
//str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )
//suppression '\n'
$chaine_etudiee = substr($chaine_etudiee,$position_slash_n+2);
//echo "<br><br><br>contenu[".$j."] ".$contenu[$j];
//echo "<br><br>j: chaine etudiee: ".$j.$chaine_etudiee;
$position_slash_n = strpos($chaine_etudiee,"\n");
echo "<br>position slash n: ".$position_slash_n;
if ($position_slash_n == false)
{ echo "<br>dedans !!";
$contenu[$j+1] = substr($chaine_etudiee,0,strlen($chaine_etudiee));
if($contenu[$j+1] != "")
{echo "<br>dedans ENCORE !!";
$der_ligne = $contenu[$j+1];
}
break;
}
$j++;
}
//***********
echo "<br><br> ecrire_fichier_colonne derniere ligne du fichier lue: ".$der_ligne."<br>j: ".$j;
//supprimer la dernière ligne
//unset($tab[count($tab)-1]);
//supprimer_ligne_fichier($nom_fichier);
if (strpos($der_ligne, "\n") != false)
$der_ligne = substr($der_ligne, 0, strpos($der_ligne, "\n"));
//echo "<br>ecrire_fichier_colonne der_ligne retour chariot supprimee en fin de ligne: ".$der_ligne;
//recréer la ligne à partir de la lecture de l'ancienne
//1) on complète la ligne de "|x"
for ($i = 0; $i <= 20; $i++)
{
$der_ligne = $der_ligne."|x";
}
//$der_ligne = $der_ligne."\n";
//2) on se positionne à la bonne colonne
$der_ligne_copy = $der_ligne;
echo "<br> ecrire_fichier_colonne der ligne copy: ".$der_ligne_copy;
$nb_pipe = 0;
if(substr($der_ligne_copy, 0, 1) != chr(124))
$NoColonne = $NoColonne - 1;
$position_pipe = false;
$position_pipe_precedent = 0;
$taille_du_mot = 0;
while($nb_pipe < $NoColonne)
{
$position_pipe = strpos ( $der_ligne_copy , chr(124));
//echo "<br> ecrire_fichier_colonne position pipe: ".$position_pipe."<br>";
if(($position_pipe != false) OR (substr($der_ligne_copy, 0, 1) == chr(124)))
{
//on retire la pipe de $der_ligne_copy
$debut_chaine_retour = substr($der_ligne_copy, 0, $position_pipe);
//echo "<br> ecrire_fichier_colonne debut_chaine_retour pipe: ".$debut_chaine_retour."<br>";
$taille_chaine = strlen($der_ligne_copy);
$fin_chaine_retour = substr($der_ligne_copy, $position_pipe +1, $taille_chaine);
//echo "<br>ecrire_fichier_colonne fin_chaine_retour pipe: ".$fin_chaine_retour."<br><br>nb_pipe: ".$nb_pipe."<br>";
$der_ligne_copy = $debut_chaine_retour.$fin_chaine_retour;
//echo "<br>ecrire_fichier_colonne der ligne copy: ".$der_ligne_copy;
$taille_du_mot = strpos ( $der_ligne_copy , chr(124)) - $position_pipe;
$position_pipe_precedent = $position_pipe;
//echo "<br>ecrire_fichier_colonne taille_du_mot ".$taille_du_mot;
$nb_pipe++;
}
if(($position_pipe == false) AND ($nb_pipe >= 2))
break;
}
//echo "<br>*************<br><br>ecrire_fichier_colonne der_ligne: ".$der_ligne."<br>";
//echo "<br>ecrire_fichier_colonne taille du mot ".$taille_du_mot."<br>";
//echo "<br>ecrire_fichier_colonne nb_pipe ".$nb_pipe."<br>";
//inserer $chaine_a_ecrire dans la colonne
$debut_chaine_retour = substr($der_ligne, 0, $position_pipe+$nb_pipe);
//echo "<br>ecrire_fichier_colonne debut_chaine_retour pipe FINAL: ".$debut_chaine_retour."<br>";
$taille_chaine = strlen($der_ligne_copy);
$fin_chaine_retour = substr($der_ligne, $position_pipe +$nb_pipe+$taille_du_mot, $taille_chaine);
//echo "<br>ecrire_fichier_colonne fin_chaine_retour pipe FINAL: ".$fin_chaine_retour;
$der_ligne = $debut_chaine_retour.$chaine_a_ecrire.$fin_chaine_retour;
echo "<br><br>*******ecrire_fichier_colonne der ligne copy: ".$der_ligne."<BR>*********************<BR><BR><BR>";
if (substr($der_ligne, 0, 1) == chr(124))
{
$der_ligne = substr($der_ligne, 1, strlen($der_ligne));
}
// on écrit
ecrire_fichier($nom_fichier, $der_ligne, true);
} |
Partager