login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Enkele regels includen

Offline Pieter - 11/04/2006 16:02 (laatste wijziging 11/04/2006 16:04)
Avatar van PieterGouden medaille

SEO guru
Hey,

Ik ben bezig aan een systeempje waar mijn uurrooster van school gebackupped wordt en naar mijn database geschreven wordt.

'K heb mbv de zoekftie dit scriptje teruggevonden in het forum:
  1. <?
  2. //vul hier de website in die je moet uitlezen
  3. $lines = file("http://www.ontwerpwetenschappen.be/po/student/index.cfm?jaar=&week=16");
  4. foreach ($lines as $line_num => $line) {
  5. echo "Regel #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br>\n";
  6. }
  7. ?>


Maar hoe kan ik nu net enkele regels tekst hieruit filteren? Heb al op php.net gezocht, maar is wat moeilijk aangezien ik niet echt weet op wat ik net moet zoeken.
Kan er mij iemand op weg helpen?
Het naar de database schrijven zal wel lukken, maar enkele zaken uit die hele code halen lijkt me moeilijker?

12 antwoorden

Gesponsorde links
Offline Thomas - 11/04/2006 16:04
Avatar van Thomas Moderator Voldoen de regels aan bepaalde kenmerken, m.a.w. heeft de string-regel een bepaald patroon?

Of heb je altijd regel X of regel A t/m B nodig?

Oftewel: Hoe bepaal je welke regel(s) je nodig hebt?
Offline Pieter - 11/04/2006 17:13
Avatar van Pieter Gouden medaille

SEO guru
Dat weet ik zelf ook nog niet.
Als je de pagina
http://www.ontw...mp;week=16
bekijkt, gaat het over 1ba. IPO.
Zou het mogelijk zijn om vb te zeggen dat ik die ene bepaalde tabel wil over ba.IPO, die altijd op dezelfde plaats begint, maar op een variabele plaats eindigd?

Maw, is het mogelijk mbv php bepaalde tags in te lezen enz?
Wat zijn mijn mogelijkheden?

Bedankt alvast.
Offline ikkedikke - 11/04/2006 17:54
Avatar van ikkedikke PHP expert je zou met een reguliere expressie die ene tabel eruit kunnen halen en dan verder uitpluizen...
Offline Pieter - 11/04/2006 18:38
Avatar van Pieter Gouden medaille

SEO guru
Bedankt alvast voor je reply ikkedikke. Ik heb zojuist de tut over reguliere expressies gedaan hier op sm, dus ik ben nog beginner (op phpgebied).

Ik heb nu al heel wat geprobeerd, maar ik kan de reguliere expressie niet uitvoeren, kan die $line niet als string gezien worden?
(ik krijg telkens dat er niets gevonden werd)
Offline b4nkr0bz0r - 11/04/2006 18:40
Avatar van b4nkr0bz0r PHP gevorderde file_get_contents(); zet het document in een string =]
Offline Pieter - 11/04/2006 19:16 (laatste wijziging 11/04/2006 20:36)
Avatar van Pieter Gouden medaille

SEO guru
:$ dankje

edit: Kan dan het zo weergeven in mijn code en dan verderwerken met de string $lineinstring?
  1. $lineinstring = file_get_contents("$line");


Als ik dit nu gebruik geeft hij deze error
Warning: file_get_contents( ): failed to open stream: No such file or directory in /home/puskas/public_html/test/test.php on line 10
Offline Rens - 11/04/2006 20:38
Avatar van Rens Gouden medaille

Crew algemeen
$line bevat...?
Je weet zeker dat het bestand bestaand?
Offline BigBug - 11/04/2006 20:39
Avatar van BigBug PHP expert Het bestand bestaan niet! (van je error)

Verder zou ik je dit zwaar afraden:
  1. $lineinstring = file_get_contents("$line");
Dit is wel heel raar, vars hoor je buiten quotes te zetten. Dus file_get_contents($line).
Offline Pieter - 11/04/2006 20:41
Avatar van Pieter Gouden medaille

SEO guru
  1. <?
  2.  
  3. //vul hier de website in die je moet uitlezen
  4. $lines = file("http://www.ontwerpwetenschappen.be/po/student/index.cfm?jaar=&week=16");
  5. foreach ($lines as $line_num => $line) {
  6. echo "$line";
  7. }
  8.  
  9. $lineinstring = file_get_contents($line);//file_get_contents() zet line om naar een string
  10. if(ereg('<a.*href[[:space:]]?=[[:space:]]?["\']?(.*)["\']?',$lineinstring,$array)) {
  11. echo $array[1];
  12. }
  13. else {
  14. echo "Niets gevonden?";
  15. }
  16. ?>


Dit is wat ik momenteel heb, en daar geeft hij dus die error bij.
Zoals je ziet leer ik nog heel wat bij. Alvast bedankt voor de gegeven hulp.
Offline Rens - 11/04/2006 21:09
Avatar van Rens Gouden medaille

Crew algemeen
Dat komt omdat je bij file_get_contents het bestand in moet vullen.
Wat jij doet is een array doorlopen, en $line echoën, maar die $line bestaat alleen binnen je foreach loop.

Dus op regel 10 zul je $line aan moeten passen naar je bestandsnaam.
En de functie file heb je denk ik niet eens nodig...
Aangezien je ook gewoon het bestand in file_get_contents kunt zetten, en die zet hem dan meteen om in een string.
Offline Pieter - 11/04/2006 22:29
Avatar van Pieter Gouden medaille

SEO guru
Ok, aangepast, en nu werkt het zoals ik het wilde naar deze stap toe.
Het probleem ligt er eigelijk in dat er soms op vb een maandag 5 regels met tekst staan, soms maar 2, of soms zelfs niets op een maandag.

Hoe zou die gegevens dan kunnen extracten van de hele webpagina?
Zoals ikkedikke zegt met een reguliere expressie? Kan er me iemand op weg zetten (ik weet nu ondertussen al hoe een reguliere expressie werkt, maar heb al ettelijke dingen zitten proberen, zonder resultaat )
Offline Gerard - 12/04/2006 02:38
Avatar van Gerard Ouwe rakker Je moet even kijken hoe de onderliggende code van de website is opgebouwd. Daarna kun je kijken in hoeverre je hier kunt preg_match() en met reguliere expressies.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.243s