Je lit la ligbe 25 d'un fichier texte par :
Code : Tout sélectionner
<?
$file = file("livres/liste.txt");
echo $file[25-1].'<br>';
?>
Merci à vous.
Code : Tout sélectionner
<?
$file = file("livres/liste.txt");
echo $file[25-1].'<br>';
?>
Strictement parlant, ce n'est pas en informatique, mais dans PHP, car il existe depuis qu'on a dépassé les bandes magnétiques, des fichiers d'accès direct, d'accès direct indexé, implantés en C, en Java, en Fortran, en Pascal, Cobol, Perl, en Python, et même, c'est pour dire, en Basic..Modifie l'array comme bon te semble, puis réinjecte le tout dans ton fichier.
En informatique on ne modifie pas une partie de fichier, on réécrit son ensemble à chaque fois mais avec les instructions qui ont été modifiées.
echo $file[25-1].'<br>';
Cette action a créee un tableau
// Transforme le tableau en chaine
$monFichier = implode("\r\n", $monTableau); // ou juste "\n" sous unix
// Met à jour le fichier
$handle = fopen($filename, 'w'); // ouverture du fichier en écriture
fwrite($handle, $monFichier); // écriture du fichier
fclose($handle); // fermeture du fichier
Tu peux le faireVu que le tableau existe, pourquoi, ne peut
on pas réécrire une nouvelle donnée dans [25-1] ?
Une faiblesse du PHP ?
Mauvais emploi du code ?
Merci de m'éclairer.
Ah ben si, c'est toi qui l'a créé ce tableau lorsque tu as fait appel à la fonction file(). Tu as lu le fichier et tu as copié chaque ligne de celui-ci dans ton tableau $file.Ce que je ne comprends pas :
- $file[25-1], lit dans un tableau que je n'ai pas créé.
Code : Tout sélectionner
<?php
$ncpt=2;
$file = file("compteurs/compteurs.txt");
$nb = count($file); // compte le nombre de ligne
$tout = "";
for ($i=0; $i<$nb; $i++)
{
if ( $i == $ncpt )
{
$file[$i-1] = $file[$i-1] + 1;
$tout = $tout.$file[$i-1];
}
else
{
$tout = $tout.$file[$i];
}
}
$handle = fopen("compteurs/compteurs.txt", 'w'); // ouverture du fichier en écriture
fwrite($handle, $tout);
fclose($handle);