[PHP/cURL] Specifieke data van bron halen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Enfer
  • Registratie: Februari 2004
  • Laatst online: 18-09 16:32
Heya :)

Ik ben nu bezig met PHP i.c.m cURL..
Zo goed zo ver lukt het me om een pagina in te laden, en te laten zien, door middel van de volgende code:
PHP:
1
2
3
4
5
6
7
8
9
<?php

$ch = curl_init("http://hiscore-web.runescape.com/lang/en/aff/runescape/compare.ws?user1=ramonlambal");

curl_setopt($ch, CURLOPT_HEADER, 0);

curl_exec($ch);
curl_close($ch);
?>


Mijn probleem is..
Ik wil niet de hele pagina laten zien, maar slechts een gedeelte (Alleen de levels, en de Xp)...

Maar ik heb nu even geen clue hoe ik dat voor elkaar ga krijgen..
Ik heb al op de cURL site zelf gekeken, en ook op php.net/curl (oid), maar daar staat voor mij niet specefiek genoege informatie op..

Heeft iemand een idee over hoe ik dit kan realiseren?

Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 18-09 16:28

Bosmonster

*zucht*

Hier heb je geen curl voor nodig.

Met file_get_contents() kun je eenvoudig de pagina ophalen. De stukjes die je nodig hebt eruit halen zul je toch echt zelf moeten doen.

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Dit lijkt me redelijk specifiek?
Opmerking: If you want to have the result returned instead of it being printed to the browser directly, use the CURLOPT_RETURNTRANSFER option of curl_setopt().
Haal gewoon de hele pagina op, zet het via bovenstaande manier in een variabele en knip uit die variabele alles weg wat je niet nodig hebt.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Enfer
  • Registratie: Februari 2004
  • Laatst online: 18-09 16:32
@bosmonster : Dat gaat helaas niet lukken, aangezien de desbetreffende server dat niet accepteert..

Zo is het toch goed?

PHP:
1
2
3
4
5
6
7
8
<?php
$ch = curl_init('http://hiscore-web.runescape.com/lang/en/aff/runescape/compare.ws?user1=ramonlambal');
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
$page = curl_exec($ch);
curl_close($ch);
$page = preg_replace("<td>", "", $page);
print_r($page);
?> 

[ Voor 45% gewijzigd door Enfer op 09-02-2006 22:14 ]


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Werkt het? Dan is het goed. Werkt het niet, dan niet? :P

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Enfer
  • Registratie: Februari 2004
  • Laatst online: 18-09 16:32
True :) Het werkt...

Maarja, je hebt brakke scripts .. en je hebt goede scripts ;)


Dankuwel :)

[ Voor 10% gewijzigd door Enfer op 09-02-2006 22:24 ]


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Oh, er kan nog wel wat verbeterd hoor, maar dat heeft verder niks met curl te maken. :P Om te beginnen: waarom strip je <td>'s weg, maar </td>'s niet? Zo hou je invalid HTML over. ;) Als dat de bedoeling is, dan is preg_replace nogal overbodig: je hebt geen regexp nodig voor een constante needle, neem dan gewoon str_replace. Als je </td> ook weg wil halen, dan kan een regexp weer wel handig zijn:
PHP:
6
$page = preg_replace("#</?td>#i", "", $page);

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Enfer
  • Registratie: Februari 2004
  • Laatst online: 18-09 16:32
Hmm, dan heb ik een vraagje.. kan ik met preg replace ook alleen een:
>

weghalen?

Want als ik dat wil begint die te zeuren over, no ending delimiter found...

*Knip -> Al gevonden"

[ Voor 59% gewijzigd door Enfer op 09-02-2006 22:39 ]


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Problem? schreef op donderdag 09 februari 2006 @ 22:30:
Hmm, dan heb ik een vraagje.. kan ik met preg replace ook alleen een:
>

weghalen?

Want als ik dat wil begint die te zeuren over, no ending delimiter found...
Kijk eens goed naar de documentatie van PHP en dan met name hoe PCRE werkt. Als je kijkt naar mijn preg_replace zie je ook een essentiëel verschil met de jouwe. ;)
En kan ik iets vervangen door een witte regel in de source?
Nu staat het allemaal zo lelijk achter elkaar in de source...
Tuurlijk: [google=php newline character]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1