login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Bestandsgrootte?

Offline pepijnfens - 25/04/2005 12:43 (laatste wijziging 25/04/2005 12:57)
Avatar van pepijnfensLid Hey,
Ik zit sinds kort met het volgende probleem in PHP: Wanneer ik (of andere gasten) een reactie op een nieuwsartikel posten, dan krijgen ze de volgende melding :

Citaat:
Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 2077 bytes) in ****/cutenews/inc/functions.inc.php on line 222


in functions.inc.php staat een functie waarmee hij eerst alle content van een tekstbestand (comments.txt = 1.88 MB) in een array zet en vervolgens kijkt welke comments bij welk artikel hoort etc.
Maar deze foutmelding schrikt alleen maar af, want de reactie wordt wel gewoon gepost. Daarom zou ik graag willen weten hoe ik deze weg kan krijgen.

line 222:
  1. <? else{ $all_comments = file("$cutepath/data/comments.txt"); } ?>


De rest van de functie:
  1. <?
  2. ////////////////////////////////////////////////////////
  3. // Function: CountComments
  4. // Description: Count How Many Comments Have a Specific Article
  5.  
  6. function CountComments($id, $archive = FALSE){
  7.  
  8. global $cutepath;
  9.  
  10. if($cutepath == ""){ $cutepath = "."; }
  11. $result = "0";
  12. if($archive){ $all_comments = file("$cutepath/data/archives/${archive}.comments.arch"); }
  13. else{ $all_comments = file("$cutepath/data/comments.txt"); }
  14.  
  15. foreach($all_comments as $comment_line)
  16. {
  17. $comment_arr_1 = explode("|>|", $comment_line);
  18. if($comment_arr_1[0] == $id)
  19. {
  20. $comment_arr_2 = explode("||", $comment_arr_1[1]);
  21. $result = count($comment_arr_2)-1;
  22.  
  23. }
  24. }
  25.  
  26. return $result;
  27. } ?>


PS: Het is zoals je ziet maar een count functie, dus ik vind het wel vreemd dat het wel goed gaat bij het wegschrijven naar het bestand, en bij het tellen niet...

2 antwoorden

Gesponsorde links
Offline Thomas - 25/04/2005 14:49
Avatar van Thomas Moderator Misschien kun je beter fread() gebruiken, daar kun je zelf de hoeveelheid data die je leest bepalen.
Misschien is het ook een idee om comments over meerdere files te verdelen, want 1.88 MB is nogal véél text...
Offline pepijnfens - 26/04/2005 13:31
Avatar van pepijnfens Lid Maar file() opent bestanden in een array met breaks in een andere array etc... en zo is comments.txt ook ingedeeld...
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.361s