Mailinglisten-Archive |
Clemens Staub wrote: > > Hallo Pascal und Ulf, > > weiss jetzt niemand Rat ? Was kann mann dagegen tun ? > > -> Egon ? > -> Tobias ? > > Hilfe !! > > > ich habe mal getestet, wieviel des files überhaupt mit fread() oder > > readfile() ausgegeben werden. es hat sich nichts geändert. nach ca. > > 600KB ist sense, obwohl ich den scriptspeicher von 8 auf 18MB > > hochgesetzt habe. > > Weisst du, wie lang ein string sein darf? > > Und wieso klappt das mit readfile() nicht? > > Das script wird anscheinend abgearbeitet, da das letzte echo noch > > ausgeführt wird. > > Der Browser scheint ja auch nicht seinen dienst zu verweigern, da er ja > > das letzte echo anzeigt. Was auch immer da passiert, ich kann das Verhalten nicht reproduzieren. Es ist mit Sicherheit kein Bug, dafür ist der fread() Source auch viel zu einfach und kurz. Taste Dich doch mal an die Aufgabe heran, ohne eine Ausgabe zu machen: $fh = fopen($file, "r"); $content = fread($fh, filesize($fh)); fclose($fh); printf("strlen = '%s', filesize = '%s'", strlen($content), filesize($file) ); Sollten beide Zahlen bei unterschiedlichen Files reproduzierbar voneinander abweichen klingt es so, als sei auf irgendeinem Grund ein zweites EOF (oft: \0) in die untersuchten Files hineingeraten. Wenn dem so ist, sollten auch alle anderen Programme (z.B. Editoren) darüber stolpern. So etwas könnte theoretisch passieren, wenn die Daten von unterschiedlichen Systemen kommen, aber eigentlich... Sollten die Zahlen identisch sein, macht Dir doch die Ausgabe einen Strich durch die Rechnung. Was passiert denn bei obigem Script? Sollte es ein Speicherproblem sein, so müßtest Du ein identisches Verhalten sehen, wenn Du einen sehr großen String anlegst. $string = "a"; for ($i=0; $i<24; $i++) $string.=$string; sleep(5); Beobachte mal was hierbei passiert. $string wird 2^24 ~ 16 Millionen Zeichen lang. Das frißt reichlich Speicher, auf meiner Maschine sind es 43MB. Steigt PHP aus? Ulf -- Ulf Wendel NetUSE Kommunikationstechnologie GmbH Siemenswall, D-24107 Kiel, Germany Fon: +49 431 386435 00 -- Fax: +49 431 386435 99
php::bar PHP Wiki - Listenarchive