login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Uitleg over file_get_contents

Offline roelh - 12/03/2007 19:16
Avatar van roelhPHP gevorderde Ik ben bezig met de functie file_get_contents.
Maar hoe kan ik informatie uitlezen van een site.
Want als ik file_get_contenst("www.nu.nl"); doe dan krijg je gewoon tekst te zien e.d. maar hoe meot je verder?
Kan iemand me misschien helpen?
Zou superrr zijn 

Groet,

Roel

16 antwoorden

Gesponsorde links
Offline timmie_loots - 12/03/2007 19:20
Avatar van timmie_loots PHP gevorderde Je moet echt meer moeite doen hoor. Wat wil je bereiken?
Offline roelh - 12/03/2007 19:23
Avatar van roelh PHP gevorderde Ik snap dat ik er moeite voor moet doen.
Maar als ik meer informatie heb over hoe het in zijn werking gaat, kan ik er aan gaan werken, kan ik dingen gaan proberen, maar wil graag even een basis hebben 
Ik wil graag wat data van andere site halen. 
Offline Rik - 13/03/2007 19:10 (laatste wijziging 13/03/2007 19:11)
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Je krijgt de hele pagina inclusief html binnen. Daar kan je zelf met de nodige explode's en regexes de informatie uit halen die je wilt.

Websites die hun content overal beschikbaar willen maken gebruiken ook vaak RSS, dat is er voor gemaakt om data gestructureerd en zonder opmaak op te slaan. Als de website waar je iets vanaf wilt halen RSS heeft is het makkelijker om die feed met een RSS-reader uit te lezen.

Scripts en tutorials staan hiet genoeg op sima volgens mij.

Edit:
Feeds van nu.nl staan hier:
http://www.nu.nl/info.jsp?n=305013&c=155 (onderaan)
Offline roelh - 13/03/2007 21:00
Avatar van roelh PHP gevorderde Oke ik zie het.
Dus als ene site GEEN rss heeft, word het al een stuk moeilijker?
Kun je me misschien klein voorbeeldje geven hoe ik starten moet?
Zou ik super fijn vinden 
Offline Rik - 13/03/2007 21:04
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Zo'n script is behoorlijk specifiek als je informatie uit een pagina met html moet halen. Als je zegt om welke informatie op welke website het gaat kan ik je wel op weg helpen.
Offline roelh - 13/03/2007 21:26
Avatar van roelh PHP gevorderde bijvoorbeeld schadeautos.nl en dan automerk, type, bouwjaar, brandstof, prijs...welk bedrijf de auto hoort...
Dat zou al mooi opgang geholpen zijn.
Als ik weet hoe er 1 werkt, kan ik de rest waarschijnlijk wel zo maken?
Offline Rik - 14/03/2007 09:22
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Ik heb even random een auto gekozen:
http://schadeautos.nl/auto.php?id=217498&from=

Alle gegevens staan in een tabel, dat zou zonder al te veel moeilijkheden uit te lezen moeten zijn. Ik wil best wat voor je maken, maar ik heb nu weinig tijd.
Offline roelh - 14/03/2007 10:05
Avatar van roelh PHP gevorderde Hmm, na als je een klein beginnetje voor me hebt ben k al blij...
Ik snap er namelijk weinig van.
Zou tof zijn als je iets kleins wilt maken...uitbouwen moet wel lukken denk ik ;)
Offline Thomas - 14/03/2007 13:30
Avatar van Thomas Moderator Euh, je wilt content van een andere site rippen?

Als zo'n site niet in een standaard formaat (RSS) informatie aanbiedt, is het waarschijnlijk ook niet de bedoeling dat de inhoud "gedupliceerd" wordt. Het internet staat al vol met geknipte en geplakte informatie.

Maar om antwoord op je vraag te geven:
Analyseer de structuur van de pagina('s), en schrijf reguliere expressies op maat die de informatie eruit filteren.

Ergo: Dit is maatwerk.
Offline roelh - 14/03/2007 15:10 (laatste wijziging 14/03/2007 15:11)
Avatar van roelh PHP gevorderde Ik snap het, maargoed, geen 1 site biedt het aan in rss, dus word het heel moeilijk...
Hopelijk kan toch iemand me opgang helpen, zou het iig op prijs stellen.

edit:
en als een site wel RSS heet, hoe kun je het dan het beste aanpakken? Ben ik ook wel benieuwd naar.
Offline Rik - 14/03/2007 18:21
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Heel erg basic maar dit zou zoveel mogelijk informatie op moeten halen:
  1. <?php
  2. $id = 227860;
  3. $url = sprintf('http://schadeautos.nl/auto.php?id=%s&from=', $id);
  4.  
  5. $contents = file_get_contents($url);
  6. $pattern = '/<tr>[[:space:]]+<td .*?>(.*?)<\/td>[[:space:]]+<td .*?>(.*?)<\/td>[[:space:]]+<\/tr>/';
  7.  
  8. preg_match_all($pattern, $contents, $matches);
  9.  
  10. $info = array();
  11. foreach ($matches[1] as $key => $value) {
  12. $info[substr($value, 0, -1)] = htmlentities($matches[2][$key]);
  13. }
  14.  
  15. print_r($info);
  16.  
  17. ?>


Hopelijk kun je hier verder mee! 
Offline roelh - 14/03/2007 20:28
Avatar van roelh PHP gevorderde Thanks, heb iig al meer informatie en ben al stukken verder, heerlijk, thanks!
Maar nu heb ik dit dus:
  1. http://roelltje.dyndns.org/zoek/zoek.php


De informatie staat zo.
Hoe kan ik het bijvoorbeeld onder elkaar krijgen of alleen bepaalde informatie eruit plukken?
Kom er jammer genoeg niet uit 
Offline Rik - 15/03/2007 11:45
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Alles staat netjes in een array en je kan de waarden die je nodig hebt er uit halen.

Bijvoorbeeld:
  1. <table>
  2. <tr>
  3. <td>Merk:</td>
  4. <td><?php echo $info['merk']; ?></td>
  5. </tr>
  6. <tr>
  7. <td>Type:</td>
  8. <td><?php echo $info['type']; ?></td>
  9. </tr>
  10. </table>
Offline roelh - 15/03/2007 11:51 (laatste wijziging 15/03/2007 11:51)
Avatar van roelh PHP gevorderde Thanks, ik had het al gevonden.
Heerlijk dat het nu werkt.
Alleen nu heb ik eigenlijk nog 2 vraagjes 

Kun je ook zoeken op de site.
Als ik bijvoorbeeld Audi a4 doe, dat hij alle audi a4's eruit haalt?
Is daar een mogelijkheid voor?
En kun je meerdere site's gebruiken om te zoeken dan?
Offline Rik - 15/03/2007 11:55
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Er zit een zoekfunctie op die site dus daarmee moet je het kunnen vinden.

Je tweede vraag begrijp ik niet helemaal. Maar om op twee verschillende site's te zoeken moet je een scriptje maken dat automatische op beide sites zoekt en de resultaten dan samenvoegt.
Offline roelh - 15/03/2007 12:05
Avatar van roelh PHP gevorderde Je zegt er zit daar een zoekfunctie op.
Dat snap ik, maar hoe kan ik daar gebruik van maken zeg maar?
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.228s