Faire remonter une remarque sur un article de l'Encyclopédie

genthial Messages postés 2 Date d'inscription mardi 8 novembre 2016 Statut Membre Dernière intervention 9 novembre 2016 - 8 nov. 2016 à 15:13
genthial Messages postés 2 Date d'inscription mardi 8 novembre 2016 Statut Membre Dernière intervention 9 novembre 2016 - 9 nov. 2016 à 09:13
Bonjour,
Je souhaite faire une remarque sur cet article de l'encyclopédie :

https://www.commentcamarche.net/contents/791-php-les-fichiers#lecture-et-ecriture

Cette remarque nécessite une modification de l'article.
Quelqu'un peut-il m'indiquer la marche à suivre ?
Merci d'avance,

3 réponses

Utilisateur anonyme
8 nov. 2016 à 15:20
Bonjour

j'ai demandé à la modération de déplacer ta question dans le forum Bugs et Suggestions.

Il ne s'agit pas à proprement parlé d'un bug du site, mais si tu décrits ici l'erreur, le modérateur qui prendra en charge mon signalement pourra aussi la corriger
0
Judge_DT Messages postés 29395 Date d'inscription vendredi 5 février 2010 Statut Modérateur Dernière intervention 23 octobre 2021 9 658
8 nov. 2016 à 15:29
Salut,

Je confirme ce qu'a dit mon ex-confrère modérateur Whismeril,

Avec les précisions sur les modifications que tu penses devoir apporter à ce document, je pourrai très bien le corriger, cependant sans avoir de précision, ni rien, c'est un peu plus compliqué.

Bien à toi,


0
genthial Messages postés 2 Date d'inscription mardi 8 novembre 2016 Statut Membre Dernière intervention 9 novembre 2016
Modifié par Judge_DT le 11/11/2016 à 03:13
Bonjour,
Merci de votre réactivité.

Dans l'article un exemple de parcours de fichier est donné avec test d'arrêt de la boucle sur feof, mais cet algorithme est incorrect car il lit au-delà de la fin du fichier, créant une ligne vide virtuelle à la fin du fichier.

Voici l'original :
<?
if (!$fp = fopen("fichier.txt","r")) {
echo "Echec de l'ouverture du fichier";

exit;
}

else {
 while(!feof($fp)) {
 // On récupère une ligne
  $Ligne = fgets($fp,255);

 // On affiche la ligne
  echo $Ligne;

 // On stocke l'ensemble des lignes dans une variable
  $Fichier .= $Ligne;

 }
 fclose($fp); // On ferme le fichier
}

?>


Voici la correction que je propose :
<?
if (!$fp = fopen("fichier.txt","r")) {
echo "Echec de l'ouverture du fichier";

exit;

}

else {
 // On récupère une éventuelle première ligne
  $Ligne = fgets($fp,255);
 while(!feof($fp)) {  // tant que cette ligne existe

 // On affiche la ligne
  echo $Ligne;

 // On stocke l'ensemble des lignes dans une variable
  $Fichier .= $Ligne;

 // On récupère une éventuelle ligne suivante
  $Ligne = fgets($fp,255);

 }
 fclose($fp); // On ferme le fichier
}

?>
0