Ingelezen HTML wegschrijven naar file

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Martijn Roverts

Martijn Roverts

19/09/2006 20:37:00
Quote Anchor link
Dmv van onderstaande code strip ik een deel van een uitslagen website. Dit werkt super, echter het doorlezen van de site (> dan 10.000 regels en 400.000 karakters) waar dit opstaat duurt best lang
De laattijd duurt tussen de 3 en 7 seconden.

Om wachttijd voor de bezoekers te beperken wil ik dit eens per week binnenhalen, door dit in een bestandje outputen.

Maar zoals ik dit nu heb gemaakt schrijft hij alleen de laatste regel in het bestand (</P>.....hoe kan dit?

En hoe moet ik dit dan aanpakken om dit op te lossen?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<?php
$bron
= "http://www.zuid-west.nevobo.nl/standvol.htm";
$vgl1="table9 "; // $vgl1 is de 1e te vinden string...
$vgl2="table10 "; // $vgl2 is de 2e te vinden string...
$gegevens = fopen ($bron, "r");

while (!feof ($gegevens))
{

   $buffer = fgets($gegevens, 4096);
   $lines[] = $buffer;
   $num_lines = count ($lines);
   }


   foreach($lines as $regelnummer1 => $regelwaarde1)

{

if(preg_match("/$vgl1/i", $regelwaarde1))
{

    $skipeerste = $regelnummer1 - 1;
    }

/*als hij niet gelijk is aan $vql1 hoeft er niets te gebeuren dus hoef je hier niets neer te zetten, ook geen else...*/
}

foreach($lines as $regelnummer2 => $regelwaarde2)

{

if(preg_match("/$vgl2/i", $regelwaarde2))
{

    $verschil = $num_lines - $regelnummer2;
    $skiplaatste = $verschil + 21 ;
        }

/*als hij niet gelijk is aan $vq2l hoeft er niets te gebeuren dus hoef je hier niets neer te zetten, ook geen else...*/
}
fclose ($gegevens);

$eerste = $skipeerste; //slaat de eerste y regels over
$laatste = $skiplaatste; //slaat de laatste x regels over

$fp = fopen ($bron,"r"); //uit te lezen website

define("SKIPEERSTE", $eerste);
define("SKIPLAATSTE", $laatste);
$linecount = 0;
$buffer = array();
for($i=0; $i<SKIPLAATSTE; $buffer[$i++]=false); // (*)
$bp = 0; //buffer pointer (points naar het oudste element in de buffer)

while (!feof($fp)) { // test of er een einde aan de site komt
$line = fgets($fp, 4096); // lees volgende lijn
if(!$line) continue; //sla lege regels over (**)

if ($linecount++ < SKIPEERSTE) continue; // slaat de eerste y regels over

$ouderegel = $buffer[$bp]; // haalt de oude regel op
$buffer[$bp] = $line; // zet het in een nieuwe lijn
$bp = ($bp+1)%SKIPLAATSTE; // zet de pointer naar de oude regels in de buffer

if($ouderegel){  //Note: de eerste SKIPLAATSTE maal $ouderegel geeft false (zie *)  maar ook als een lege regel is gevonden. (maar die word nooit gevonden (zie **))

$ouderegel = str_replace("<tr bgcolor=\"#FFFF00\">","<tr>",$ouderegel);
$ouderegel = str_replace("<table border=\"1\"","<table style=\"border: 1px #000000 solid\"",$ouderegel);
$ouderegel = str_replace("OKK'70 1","<strong>OKK'70 1</strong>",$ouderegel);
//Doe iets met die troep!!!

echo ( $ouderegel );

}
}

/*
let op dat lege regels worden genegeerd
*/

$file ="regels.txt";
$handle = fopen($file, "a+");
fputs($handle, $ouderegel );
fclose ($handle);

?>
Gewijzigd op 01/01/1970 01:00:00 door Martijn Roverts
 
PHP hulp

PHP hulp

05/11/2024 11:59:04
 
Frank -

Frank -

19/09/2006 20:45:00
Quote Anchor link
Hmmm, het rippen van andersmans website is niet zo netjes. Of je daar toestemming voor gekregen van de eigenaar?

Bedenk ook dat het mogelijk verboden is om deze data te gebruiken!
 
Martijn Roverts

Martijn Roverts

19/09/2006 20:49:00
Quote Anchor link
Gelukkig is dit niet verboden ik heb hier contact gehad met de beheerder van de website. En ook met een bestuurslid van de bond.
Dit is info die wij als vereniging gewoon mogen kopieren.
Maar aangezien dit elke weekend voor 13 teams gedaan moet worden is dit voor ons de gemakkelijkste oplossing.

Maar ik snap je opmerking!
Gewijzigd op 01/01/1970 01:00:00 door Martijn Roverts
 
Martijn Roverts

Martijn Roverts

19/09/2006 21:37:00
Quote Anchor link
In feite is dit net zoiets als het script van Herjan voor de amateur wedstrijden uit het voetbal http://www.phphulp.nl/php/scripts/7/743/

Maar het vreemde is dat hij die laatste regel van de $oudregel wegschrijft en niet de overige 297 regels.

Hoe pak je zoiets aan?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.