login  Naam:   Wachtwoord: 
Registreer je!
 Forum

bestand lezen (Opgelost)

Offline Wim - 30/05/2007 18:52 (laatste wijziging 30/05/2007 18:52)
Avatar van WimCrew algemeen
  1. <?php
  2. // functie maakt deel uit van een classe
  3. public function readCache($file)
  4. {
  5. $cachefile = fopen($this->dir.$file.'.cache', "r");
  6.  
  7. while(!feof($cachefile))
  8. {
  9. $fileContent = fgets($cachefile, filesize($this->dir.$file.'.cache')+(filesize($this->dir.$file.'.cache')/100)); // filesize +10%
  10. echo $fileContent;
  11. $content = ob_get_contents();
  12.  
  13. }
  14. fclose($cachefile);
  15.  
  16. return $content;
  17. }
  18. ?>


hij leest niets. Ik heb reeds een controle uitgevoerd (met file_exists()), en het bestand bestaat.

Dit is het bestand: http://mizone.be/gdx/cache/index.cache
(het is automatisch gecacht, rechten: 644 (zelfs 777 werkt niet))

Het object heb ik nadien pas toegevoegd, dunno why, maar het helpt iig niet!

Greetz,
Wim

2 antwoorden

Gesponsorde links
Offline Stijn - 30/05/2007 18:58
Avatar van Stijn PHP expert
  1. <?php
  2. // functie maakt deel uit van een classe
  3. public function readCache($file)
  4. {
  5. $cachefile = fopen($this->dir.$file.'.cache', "r");
  6.  
  7. while(!feof($cachefile))
  8. {
  9.  
  10. $content .= fgets($cachefile, filesize($this->dir.$file.'.cache')+(filesize($this->dir.$file.'.cache')/100)); // filesize +10%
  11.  
  12. }
  13. fclose($cachefile);
  14.  
  15. return $content;
  16. }
  17. ?>
Je echoëd de cache en daarna return je die cache (die je waarschijnlijk ook zal echoën)... Gewoon de inhoud in een variable stoppen en returnen.
Offline Wim - 30/05/2007 19:11 (laatste wijziging 30/05/2007 19:14)
Avatar van Wim Crew algemeen wat jij had had ik ook (buiten het toevoegen van str, maar ik tel al 10% bij de bestandsgrootte bij), dus het zal niet werken vrees ik (however, I'll try).

Bovendien, die echo vang ik in een object op. De inhoud van dat object return ik nadien (dacht dat het mss iets te maken had met fclose(), heb nogal wijnig ervaring met files )

//edit:
het werkt, en nadien gezien logisch ook...
while (!feof) => while not end of file
$var = content // laatste byte is appart en die is leeg -> $var is altijd leeg! .= werkt dus wel

huidige code:
  1. <?php
  2. public function readCache($file)
  3. {
  4. $cachefile = fopen($this->dir.$file.'.cache', "r");
  5.  
  6. while(!feof($cachefile))
  7. {
  8. $content .= fgets($cachefile, 4096);
  9. }
  10. fclose($cachefile);
  11.  
  12. return $content;
  13. }
  14. ?>


Zoals je ziet heb ik 4KiB als max-groote genomen. Sommige configuraties ondersteunen niet meer...!
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.238s