Arriver a faire fonctionner une fermeture de boucle php

minwolf -  
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   -

Bonjour, voilà je suis en train de récupérer une liste dans un fichier .txt (donc je m'y prend ligne par ligne) j'ai donc créer une boucle qui le fait pour moi cependant j'ai un problème avec la fermeture de la boucle (soit elle ne s'active pas soit elle s'active direct) pouvez vous m'aider et m'expliquer mon erreur pls ?(soyez indulgent j'ai commencer le php hier)

<?php     
    $ressource = fopen('test.txt', 'r');
	$ligne = fgets($ressource);
               
    while ($ligne!="") {
		echo("Appel :".fgets($ressource)."<br>")  ;
	
         if ($ligne==0){
              break;
         }
	}

?>


Windows / Firefox 103.0

A voir également:

3 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 

Bonjour,

Inspire toi donc de l'exemple donné dans la documentation 

https://www.php.net/manual/fr/function.fgets.php


0
minwolf
 

Bonjour, merci pour ton conseil cependant je ne comprend pas pourquoi quand je fais un copier coller de l'exemple donné dans la documentation, pour voir comment il marche, rien ne se passe sur la page (j'ai seulement modifier le nom du fichier pour qu'il aille dans le fichier déjà créé

<?php
$fp = @fopen("text.txt", "r");
if ($fp) {
    while (($buffer = fgets($fp, 4096)) !== false) {
        echo $buffer;
    }
    if (!feof($fp)) {
        echo "Erreur: fgets() a échoué\n";
    }
    fclose($fp);
}
?>
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 

Ajoute des contrôles suplémentaires pour voir ce qui se passe.

par exemple

<?php

$fichier = "text.txt"; // par précaution, moi j'utiliserai le chemin absolu .. par exemple : __DIR__ . "/text.txt";

if (!file_exists($fichier)){
  echo "Le fichier " . $fichier . " n'existe pas ou ne se trouve pas à l'emplacement spécifié..." . PHP_EOL;
  exit;
}

$fp = @fopen($fichier, "r");
if ($fp) {
  while (($buffer = fgets($fp, 4096)) !== false) {
    echo $buffer;
  }
  if (!feof($fp)) {
    echo "Erreur: fgets() a échoué" . PHP_EOL;
  }
  fclose($fp);
}else{
   echo "Erreur lors de l'ouverture du fichier : " . $fichier  . PHP_EOL;
   exit;
}
?>


Pense aussi à activer l'affichage des erreurs PHP  https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code

0