Men när jag hämtar hem test.php som är exakt likadan, förutom filändelsen, blir resultatet:
HTTP/1.1 200 OK
Date: Mon, 28 Jul 2008 18:26:37 GMT
Server: Apache
X-Powered-By: PHP/5.2.6
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html
c
abc
def
ghi
0
De tecken som inte finns med i originalfilen (och inte syns i webbläsare) är alltså c och 0 (och några radbrytningar). Jag får bara detta problem med sidor som skapas dynamiskt, tex php-script.
Någon som har gissning om vad problemet kan vara? https://www.foks.se är min domän och test.html och test.php är korta testfiler, så det är fritt fram att testa med dem. :)
Det är Apache - inte PHP - som lägger till den här informationen, och inte bara på just PHP-filer - utan som sagt på alla dynamiska filer. Jag vet inte vad det beror på dock, eller vad det har för information. Jag skulle gissa på att den avslutande nollan åtminstone är EOF-tecken (End Of File), och att den läggs till för att tala om var webläsaren (eller i ditt fall fgets()) ska sluta att hämta information. Med statiska filer (.htm/.html) anger Apache istället en header för längden på filen (Content-Length).
Spekulationer mestadels. Och inget ordentligt svar... ;)
Jag sökte vidare om Apache och hittade en diskussion om samma problem.
Det verkar vara så att HTTP/1.1 lägger till dessa tecken som innehåller information. Som ett tillfälligt fulhack kan jag alltså köra HTTP/1.0 som inte har samma "problem", sen får jag väl läsa in mig mer på HTTP-standarden.
Tack SPiN för att du ledde mig på rätt väg. (y)
254 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849