2017-08-22 2 views
0

Ich bin neu in PHP und ich bin schwer zu sehen, warum mein Code nicht funktioniert. Kann jemand sehen, warum das ist? Für meinen Code, ich versuche, die Textdatei zu lesen, indem Sie eine Kombination von fgets() und fscanf() verwenden, und ich möchte diese in eine Reihe von Variablen setzen. Ich möchte auch false zurückgeben, wenn die Datei EOF erreicht und ich möchte, dass sie diese Datensätze im Texteditor in Variablen liest und ihre Ausgaben ausgibt.PHP: Mit fgets() und fscanf(), um sie in Variablen zu lesen

$fp = fopen ("branches.txt", "r"); 
    while ($branch = fgets ($fp)) { 
     $branch=trim($branch); 
     if (filesize('branches.txt') == 0){ 
      echo "The file is DEFINITELY empty"; 
     } 
     printf("%2d: "); 
     if ($branch === FALSE) print ("FALSE\n"); 
     else print ($branch . "</br>"); 
    } 
    while ($info = fscanf($fp, "%i %lf %lf")) { 
     list ($properties, $income, $expenditure) = $info; 
     echo $info; 
    } 
    fclose ($fp); 

Text Editer: Lage/String Integer Float Float

d.h isver Wärme 12 160,0 77,0

Antwort

0

Hier

printf ("% 2d:");

fehlender int-Wert.

Sie haben die Datei (while ($branch = fgets ($fp))) bereits zum EOF gelesen. Jetzt müssen Sie den Zeiger zurücksetzen, bevor Sie die Datei mit while ($info = fscanf($fp, "%i %lf %lf")) lesen.

rewind($fp); 
while ($info = fscanf($fp, "%i %lf %lf")) { 
..... 

prüfen Link für mehr: http://php.net/manual/en/function.rewind.php

+0

welche Integer-Wert ist genau aus dem Druck fehlt? –

+0

'printf ("% 2d: ");' wo ist deine Variable für '% 2d'. Es sollte 'printf ("% 2d: ", some_variable); 1' sein. Ist es nicht? – ruhul

+0

Ich habe das gestern schon versucht, aber es ändert nicht die Ausgabe –

Verwandte Themen