Hellooww,
Ik ben vandaag bezig geweest met een script om een HTML bestand te downloaden en dat in een temp file te zetten op de schijf. Tot zover is het gelukt.
Nou wil ik uit die temp file (knvb.txt) maar een bepaald deel gaan gebruiken omdat ik alleen die informatie nodig hebt. Het betreft de uitslagen en standen van een bepaald team.
Ik heb al geprobeerd om die tabellen er met reguliere expressions uit te krijgen, maar het wil niet lukken. De HTML is ook helemaal kapot, dus kan ik het er ook niet zomaar inplakken.
Dit is het script wat ik tot nu toe heb:
file.php:
knvb.php:
De output van die bestanden is te zien op:
http://84.26.137.45/knvb.php
http://84.26.137.45/knvb.txt
Weet iemand een oplossing of iets wat mij op weg kan helpen om die 3 tabellen apart te halen en die op mijn scherm te laten zien?
Ik ben vandaag bezig geweest met een script om een HTML bestand te downloaden en dat in een temp file te zetten op de schijf. Tot zover is het gelukt.
Nou wil ik uit die temp file (knvb.txt) maar een bepaald deel gaan gebruiken omdat ik alleen die informatie nodig hebt. Het betreft de uitslagen en standen van een bepaald team.
Ik heb al geprobeerd om die tabellen er met reguliere expressions uit te krijgen, maar het wil niet lukken. De HTML is ook helemaal kapot, dus kan ik het er ook niet zomaar inplakken.
Dit is het script wat ik tot nu toe heb:
file.php:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| <?php function writeFile($link, $filename, $needle_start = '<a name="uitslagen">', $needle_end = 'Uitleg') { // $link = "http://www.knvb.nl/clubs_comp/?action=teamDetails&ClubName=Alliance&NotationDescription=513%20Vrouwen%20Zondag&LevelDescription=5e%20klasse&CompetitionType=513&ClassLevel=15&RegionCode=KNVB-DISTRICT-ZUID1&Pool=851&TeamDescription=DA1"; // $filename = "test.txt"; $setting = ini_set("allow_url_fopen", "On"); // fopen wrappers aan zetten om de data op te kunnen halen. $msg = "Log:<br>"; if (!$setting) { if (is_writable($filename)) { //Controleren of het destination bestand te beschrijven is. if (!$handle = fopen($filename, 'w')) $msg .= "Kan het bestand niet openen<br>"; // Het destination bestand openen voor gebruik else { $data = file_get_contents($link); // De contents van de webpagina in een link krijgen $length = strlen($data) - (($pos1 = strpos($data, $needle_start)) + ($end = strlen($data) - $pos2 = strpos($data, $needle_end))); // Bepalen welke data ik nodig heb. $data = substr($data, $pos1, $length); // Alleen die data eruit halen. if (!fwrite($handle, $data)) $msg .= "Kan de data niet in het bestand schrijven<br>"; // De contents in het destination bestand schrijven else $msg .= "Bestand succesvol vol gepleurd met de troep van de link<br>"; } } else { $msg .= "Kan bestand niet schrijven<br>"; // Anders error laten zien dat het destination bestand niet te beschrijven is. } } else { $msg .= $setting."<br>"; } return($msg); } ?> |
knvb.php:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| <?php include('file.php'); $filename = "knvb.txt"; $messages = writeFile("http://www.knvb.nl/clubs_comp/?action=teamDetails&ClubName=Alliance&NotationDescription=513%20Vrouwen%20Zondag&LevelDescription=5e%20klasse&CompetitionType=513&ClassLevel=15&RegionCode=KNVB-DISTRICT-ZUID1&Pool=851&TeamDescription=DA1", $filename); echo $messages."<br>"; $test = false; $tables = array(); $text = ""; $filename = "knvb.txt"; if (!$handle = fopen($filename, 'r')) echo "Kon $filename niet openen"; while (!feof ($handle)) { $line = fgets($handle, 2048); // if (eregi('<TABLE' , $line)) $test = TRUE; //begin zoeken // if (eregi('</TABLE>' , $line)) $test = FALSE; //begin zoeken // if ($test == TRUE) { echo $line; // } } //$tables = preg_split("<table?[^>](.*?)</table>", $text); //print_r ($tables); ?> |
De output van die bestanden is te zien op:
http://84.26.137.45/knvb.php
http://84.26.137.45/knvb.txt
Weet iemand een oplossing of iets wat mij op weg kan helpen om die 3 tabellen apart te halen en die op mijn scherm te laten zien?