Lire ce qu'on écrit

Bonjour,

Aide moi, comment faire pour avoir la solution ici
voir script php

<?php

$mots = array("a", "b", "c", "d");

$Ind = count($mots);

$fhmot= fopen("fichier.txt", 'w');

$i=0;
while($i<$Ind)
{
$varmot = $mots[$i];
fwrite($fhmot, $varmot );
$i++;
}

fclose($fhmot);

//comment faire un echo du $fhmot sans aller lire le fichier ?

//donc non

$contenu ="fichier.txt";
echo file_get_contents($contenu);

?>

7 réponses

  • Votes
  • Date
  • Date décroissante
  1. pour pouvoir afficher le contenu d'un fichier il faut bien le lire, c'est comme si tu lisait un livre sans l'ouvrir et dans le noir.

    mais avec la fonction file tu peux faire:

    $nom_fichier ="fichier.txt";
    $array_contenu_fichier=file($nom_fichier);
    
    for($i=0;$i<sizeof($array_contenu_fichier){
       echo $array_contenu_fichier[$i];'<br />';
    }
    
    1. je te retourne la question:
      comment lire un fichier sans l'ouvrir?
      1. moi j"ai besoin du flux sur la ligne
        fwrite($fhmot, $varmot );

        donc le flux de $fhmot.

        pour faire une cache equivalent du fichier
        1. salut

          Donc pour vous $fhmot est une variable fini !!!
          qu"on peux rien faire!!!

          merci
          1. moi j"ai besoin du flux sur la ligne
            fwrite($fhmot, $varmot );

            donc le flux de $fhmot.

            pour faire une cache equivalent du fichier


            fopen revoie une ressource pointeur fichier dans ta variable $fhmot
            voir site: https://www.php.net/manual/fr/function.fopen.php

            si tu fais le test:
            <?php
            
            $mots = array("a", "b", "c", "d");
            
            $Ind = count($mots);
            
            
            $fhmot= fopen("fichier.txt", 'w');
            
            $i=0;
            while($i<$Ind)
            {
            echo "pointeur fichier: ".$fhmot."<br />";
            $varmot = $mots[$i];
            fwrite($fhmot, $varmot );
            $i++;
            }
            
            fclose($fhmot);
            
            ?>


            tu vas avoir: (exemple)

            pointeur fichier: Resource id #3
            pointeur fichier: Resource id #3
            pointeur fichier: Resource id #3
            pointeur fichier: Resource id #3


            donc tu vois bien qu'il n'y a pas de flux dans cette variable c'est le "canal" vers le fichier.

            si tu veux "suivre" ce qui est écrit dans le fichier ligne par ligne tu peux faire:
            <?php
            
            $mots = array("a", "b", "c", "d");
            
            $Ind = count($mots);
            
            
            $fhmot= fopen("fichier.txt", 'w');
            
            $i=0;
            while($i<$Ind)
            {
            
            $varmot = $mots[$i];
            if(fwrite($fhmot, $varmot )){ //si l'écriture a été effective
            	echo "j'ai écrit ligne ".($i+1)." : ".$varmot."<br />";
            }
            
            $i++;
            }
            
            fclose($fhmot);
            
            ?>
            1. alors pas de solution
              on ne peux pas le faire
              il ya rien comme flux.
              c'est un canal vers le fichier
              merci
          2. je ne sais pas ce que tu entends par flux, mais ce que je t'ai proposé est bien une solution pour "suivre" ce que tu ecrit effectivement dans le fichier ligne par ligne