login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Array met meerdere regels wegschrijven

Offline roverts - 19/09/2006 23:36 (laatste wijziging 19/09/2006 23:37)
Avatar van rovertsNieuw lid Hoe krijg ik deze array weggeschreven naar een bestand?

Zoals ik dat nu toepas krijg ik alleen de laatste regel van de array, maar ik wil de volledige array wegschrijven.

  1. <?
  2. $fp = fopen ("http://www.zuid-west.nevobo.nl/standvol.htm","r"); //just for testing
  3.  
  4. define("SKIPFIRST", 2495); //skip fist y lines
  5. define("SKIPLAST", 24623); //skip last x lines
  6. $linecount = 0;
  7. $buffer = array();
  8. for($i=0; $i<SKIPLAST; $buffer[$i++]=false); // (*)
  9. $bp = 0; //buffer pointer (points to oldest element in the buffer)
  10.  
  11. while (!feof($fp)) {
  12. $line = fgets($fp, 4096); // read next line
  13. if(!$line) continue; //skip empty lines (**)
  14.  
  15. if ($linecount++ < SKIPFIRST) continue; // skip fist y lines
  16.  
  17. $oldline = $buffer[$bp]; // retreive old line
  18. $buffer[$bp] = $line; // put in new line
  19. $bp = ($bp+1)%SKIPLAST; // set pointer to the oldes line in the buffer
  20.  
  21. if($oldline){ //NOTE: the first SKIPLAST times $oldline will be false (see *), but also when an empty line is found (this will however not be the case because of (**))
  22.  
  23. // do something with the line
  24. echo $oldline;
  25.  
  26. $file ="file";
  27. $handle = fopen($file, "w");
  28. fwrite($handle, $oldline);
  29. fclose ($handle);
  30. }
  31. }
  32. ?>


(bron : http://www.html-site.nl/forum/11_882_0.html)

Bijvoorbaat dank!  

3 antwoorden

Gesponsorde links
Offline DaneElec - 20/09/2006 08:26
Avatar van DaneElec Nieuw lid Hee

maak een for-lus, zet daar in alleen de regel fwrite en zet al het andere NIET in de for lus, opgelost
Offline Wijnand - 20/09/2006 08:56
Avatar van Wijnand Moderator 1. Je kunt beter even wat gaan tabben zodat je goed ziet hoe de accolades ({ en }) lopen.
2. Ik snap niet helemaal het nut van jou script.
3. Wil je zoiets?

  1. <?php
  2. $fp = fopen ("http://www.zuid-west.nevobo.nl/standvol.htm","r"); //just for testing
  3.  
  4. define("SKIPFIRST", 2495); //skip fist y lines
  5. define("SKIPLAST", 24623); //skip last x lines
  6. $linecount = 0;
  7. $buffer = array();
  8. for($i=0; $i<SKIPLAST; $buffer[$i++]=false);
  9. $bp = 0;
  10. $file ="test.txt";
  11. $handle = fopen($file, "w");
  12. while (!feof($fp)) {
  13. $line = fgets($fp, 4096) . "\n";
  14. if(!$line) continue;
  15. if ($linecount++ < SKIPFIRST) continue;
  16. $oldline = $buffer[$bp];
  17. $buffer[$bp] = $line;
  18. $bp = ($bp+1)%SKIPLAST;
  19.  
  20. fwrite($handle, $line);
  21. }
  22. fclose ($handle);
  23. ?>
Offline roverts - 20/09/2006 17:16
Avatar van roverts Nieuw lid Thanx voor je reactie!

1. Dat tabben zal ik doen.
2. De reden van dit script is om een deel van de uitslagen van Volleybal bond op te slaan en dat te includen op de site van onze vereniging. Dit is geoorloofd door bond. Vanwege de laadtijd (ca 5-10 sec.)wil ik dit eens per week ofzo wegschrijven om zodoende het geduld van onze bezoekers niet op de proef te stellen.
3. Dit is idd beter dan wat ik had verzonnen, alleen schrijft hij nu vanaf het eerste deel dat ie moet inlezen tot de allerlaaste regel alles weg. Hij moet stoppen op SKIPLAST. Heb net wat geprobeerd om dit op te lossen maar dat is nog niet gelukt.

Ik ga morgen verder proberen om dit op te lossen.

Nog bedankt voor je reactie  
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.194s