Data verkrijgen van een andere website

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Stefan

Stefan

24/05/2009 00:31:00
Quote Anchor link
Oke, ik heb een website op een andere server, nu wil ik data van die website naar een lokaal gehoste website hebben, daarvoor gebruik ik
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
   $url
= 'link hier';
   $lines_array = file($url);
   $lines_string = implode('', $lines_array);
   eregi('Level (.?)', $lines_string, $mydata);
   echo $mydata[0],"<br><br>";
?>

Om het level op te halen, maar nu moet ik iets ophalen dat mij niet lukt, namelijk een integer, vanuit deze html tags, de reden dat ik het zo do is omdat het cijfer/text dynamisch is en dus op elk moment kan veranderen.

Dit is de html tag waar het cijfer zich bevind.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<html>
<div class="value" onmouseover="mt.js.Tip.show(this,'Number of victories in the Arena.',null)" onmouseout="mt.js.Tip.hide()">8</div>
</html>

Het specifieke cijfer waar het hier om gaat is de 8 die in de div zelf zit.

Hier is de code die ik gebruik maar niet werkt. print_r($mydata3) geeft ook niks.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
   $lines_array3
= file($url);
   $lines_string3 = implode('', $lines_array3);
   eregi("<div class=\"value\" onmouseover=\"mt.js.Tip.show(this,'Number of victories in the Arena.',null)\" onmouseout=\"mt.js.Tip.hide()\">(.*)</div>
"
, $lines_string3, $mydata3);
   $victories = $mydata3[0];
   echo $victories,"<br><br>";
?>
 
PHP hulp

PHP hulp

24/12/2024 19:19:01
 

24/05/2009 08:38:00
Quote Anchor link
Eregi is oud. Gebruik liever preg_*.
Als je data op wilt halen, dan kan je ook gebruik maken van file_get_contents.
Je kunt ook met dom (en misschien simplexml) aan het werk gaan.
 
Stefan

Stefan

24/05/2009 08:48:00
Quote Anchor link
Ik snap het hele gedoe met preg niet.
 

24/05/2009 08:58:00
Quote Anchor link
Ongeveer hetzelfde als met eregi, alleen is preg beter.
Hier kun je testen.
 
Stefan

Stefan

24/05/2009 09:03:00
Quote Anchor link
Dan nog snap ik het niet helemaal. Misschien als je mij een voorbeeld kan geven dat ik er meer van snap?
 
Stefan

Stefan

24/05/2009 09:22:00
Quote Anchor link
Oke, Ik heb nu al iets. het geeft mij alleen lege arrays.. >.<

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
   $regex
= "/<div class=\"value\" onmouseover=\"mt.js.Tip.show(this,'Number of victories in the Arena.',null)\" onmouseout=\"mt.js.Tip.hide()\">(.*)<\/div>/";
   preg_match_all($regex, $url, $mydata3);
   print_r($mydata3);
?>
Gewijzigd op 01/01/1970 01:00:00 door Stefan
 
Stefan

Stefan

24/05/2009 14:16:00
Quote Anchor link
Iemand nog een idee?
 
Rens nvt

Rens nvt

24/05/2009 14:21:00
Quote Anchor link
escape alle speciale karakters binnen je regexp, zoals bijv. de punten in mt.js.Tip.show (dus mt\.js\.Tip\.show)
 
Stefan

Stefan

24/05/2009 14:39:00
Quote Anchor link
mijn regex is nu
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
   $regex
= "/<div class=\"value\" onmouseover=\"mt\.js\.Tip\.show(this,'Number of victories in the Arena.',null)\" onmouseout=\"mt\.js\.Tip\.hide\()\">(.*)<\/div>/";
?>

maar het werkt nog steeds niet
 

24/05/2009 14:46:00
Quote Anchor link
Dit geeft ook aan wat je match. Pruts daar eens wat mee.
En lees ook eens een tutorial regex tutorial.
 
Stefan

Stefan

24/05/2009 14:59:00
Quote Anchor link
Oke, de code werkt nu, maar nu wil ik dus de goede data uit de array halen, die staat op 0. maar als ik mydata3[0] echo, zegt ie alleen: Array, dit is de array:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
Array ( [0] => Array ( [0] =>
10
) [1] => Array ( [0] => 10 ) )
 

24/05/2009 16:12:00
Quote Anchor link
mydata3[0][0]
 
Stefan

Stefan

24/05/2009 17:22:00
Quote Anchor link
Dankje, het werkt perfect. Nu de andere codes omzetten in preg en regex.
 



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.