URL: https://www.overclockers.at/coding-stuff/php_problem_92717/page_1 - zur Vollversion wechseln!
Ich habe ein Problem mit einem php script dass aus einer textdatei auslesen und das ergebnis in 2 variablen splitten sollte.
es erscheint keine fehlermeldung, die seite lädt einfach ewig.
wenn ich fgets gegen fread austausche tritt das problem nicht mehr auf aber das ergebnis auch nicht .
findet wer einen fehler ?
tia,
ezekiel
Code: PHP$fp=fopen("bla.txt","r"); $data=fgets($fp,1024); while(!feof($fp)) { list($bla1,$bla2)=split(",",$data,2); echo "$bla1"; echo "$bla2"; } fclose($fp);
hab die seite jetzt mal ca. 5 minuten laden lassen, mit dem ergebnis das die selbe zeile ca ~250-500 mal ausgegeben wurde?!
seltsam ...
wie gross ist die datei?
du liest mit fgets ja nur 1024byte aus
und innerhalb der while-schleife lest ja kan text mehr aus der datei aus, sprich feof wird nie eintreten
->
ich hätts so probiert:
while ( !feof($fp) )
{
list($bla1,$bla2)=split(",",$data,2);
echo "$bla1";
echo "$bla2";
}
also irgendwie is das das gleiche nomalZitat von PuhBärwie gross ist die datei?
du liest mit fgets ja nur 1024byte aus
und innerhalb der while-schleife lest ja kan text mehr aus der datei aus, sprich feof wird nie eintreten
->
ich hätts so probiert:
while ( !feof($fp) )
{
list($bla1,$bla2)=split(",",$data,2);
echo "$bla1";
echo "$bla2";
}
so müssts eigentlich funkenCode:$fp=fopen("bla.txt","r"); while(!feof($fp)) { $data=fgets($fp,1024); list($bla1,$bla2)=split(",",$data,2); echo "$bla1"; echo "$bla2"; } fclose($fp);
*huch*
yo, hast recht
hab des fgets vergessen
übrigens,
einfacher gehts mit:
$lines = file ('foo.bar');
$lines ist dann ein array mit jeweils 1 zeile als value
er braucht aber anscheinend genau 1024, und nicht \n als datensatztrennung...Zitat von PuhBär*huch*
yo, hast recht
hab des fgets vergessen
übrigens,
einfacher gehts mit:
$lines = file ('foo.bar');
$lines ist dann ein array mit jeweils 1 zeile als value
fgets() liest unter anderem auch bis \n
Code: PHPforeach (file("bla.txt") as $line) { list($bla1, $bla2) = explode(",", $line, 2); }
dankeschön. werds heute am nachmittag probieren
ist mir klar, aber es is trotzdem möglich, dass er eine 1024er begrenzung braucht, aber ihm is es ja völlig wurscht - er äussert sich auf solche sachen sowieso nicht...Zitat von Rektalfgets() liest unter anderem auch bis \n
die 1024 waren nur eine hausnummer fürs testen, grundsätzlich muss er bis zeilenende lesen und das sind eh viel weniger
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025