XML / Array

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jordi Kroon

Jordi Kroon

25/01/2011 16:36:09
Quote Anchor link
Ik wil een ledenlijst van alle leden op mijn website maar die staat op een andere site

Nu wil ik die dus met file_get_contents op mijn website
Alleen ik wil maar een aantal regels dus vanaf bijv regel 500 tm regel 1244
De ledenlijst staat op :

http://www.xfire.com/communities/0sfi0/roster/

En ik heb maar regel 760 t/m regel 1746 nodig
En niet de hele pagina

Voordat jullie zeggen , heb je toestemming .
Ik heb een email gestuurd voor toestemming aan xfire
Heb nog antwoord nodig . tot dan gaat dit niet online en word het alleen lokaal getest

Weten jullie hoe ik dit moet doen?
Gewijzigd op 26/01/2011 16:18:44 door Jordi Kroon
 
PHP hulp

PHP hulp

13/01/2025 03:46:21
 
- Ariën  -
Beheerder

- Ariën -

25/01/2011 16:37:16
Quote Anchor link
Wacht maar eerst even of je dat wel zomaar mag doen.
Kan je niet beter vragen of ze een XML aan zouden kunnen bieden?
 
Jordi Kroon

Jordi Kroon

25/01/2011 16:45:21
Quote Anchor link
Ik heb het doorgezocht en xfire heeft niet zoiets dus moet ik voor de moeilijkere weg gaan helaas
 
Jaron T

Jaron T

25/01/2011 16:48:33
Quote Anchor link
alle data staat in de 'window_content' div.. binnen een table met elke regel een nieuwe tr.. dit kan je filteren nadat je alles hebt opgehaald met file get contents.. zoek even op regex tutorial.
 

25/01/2011 16:59:34
Quote Anchor link
Jordi kroon op 25/01/2011 16:45:21:
Ik heb het doorgezocht en xfire heeft niet zoiets dus moet ik voor de moeilijkere weg gaan helaas


Dan betekend dat ook waarschijnlijk dat het niet mag.
Er staat onderin duidelijk copyright xfire (al zegt dat in principe ook niet veel).
En sowieso is data op een website van de eigenaar van de website (als die het tenminste zelf heeft gemaakt).
Verder is de privacy policy erg interessant, volgens mij verkopen ze die data die ze verzamelen door (al heb ik het niet gelezen ofzo, snelle blik op geworpen).

Het belangrijkste punt is, dat als je dit efficiënt wilt doen, dat je dan verstand van zaken moet hebben. Als je verstand van zaken hebt, dan kan je zelf verzinnen hoe het moet.
 
Jordi Kroon

Jordi Kroon

25/01/2011 17:10:36
Quote Anchor link
Ik heb het even op het forum gezet van hun en heb een link gekregen
http://www.xfire.com/xml/0sfi0/clan_members/
 

25/01/2011 17:14:28
Quote Anchor link
Kijk nu wordt het simpel. Gewoon met dom of simplexml werken.
 
Jordi Kroon

Jordi Kroon

25/01/2011 17:33:31
Quote Anchor link
@karl karl

Ik heb eigenlijk nog nooit met dom en simplexml gewerkt
Dus weet ook niet precies hoe het moet

ik heb dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php

  ini_set('display_errors', 'On');
  error_reporting(E_ALL);
  
$data = file_get_contents('http://www.xfire.com/xml/0sfi0/clan_members/');

$xml = new SimpleXMLElement($data);

foreach ($xml->xfire->roster->member as $test) {
   echo $test->username, ' joined on ', $character->joindate;
}


?>





Het is gewoon even als test
Maar hoe moet ik het precies doen.
Kan je voorbeeld geven hoe ik er bijv de username uithaal.
De rest lukt me dan zelf wel:)

Toevoeging op 25/01/2011 17:39:15:

Error :

Notice: Trying to get property of non-object in /home/sficlan.com/www/test.php on line 9 Warning: Invalid argument supplied for foreach() in /home/sficlan.com/www/test.php on line 9
Gewijzigd op 25/01/2011 17:34:03 door Jordi Kroon
 
- Ariën  -
Beheerder

- Ariën -

25/01/2011 18:36:04
Quote Anchor link
$xml
is een array, en kijk eens met print_r() wat je er stapsgewijs uit kan halen.
 
Jaron T

Jaron T

25/01/2011 18:48:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
$data
= file_get_contents('http://www.xfire.com/xml/0sfi0/clan_members/');

$xml = new SimpleXMLElement($data);

foreach ($xml as $array)
{

    foreach ($array as $member)
    {

        echo $member->username."<br />";
        echo $member->displayname."<br />";
        echo $member->status."<br />";
        echo $member->joindate."<br />";
        echo "<br />";
    }    
}

?>


aub
 
Jordi Kroon

Jordi Kroon

25/01/2011 19:18:59
Quote Anchor link
Is er eigenlijk ook een functie zoals ORDER BY of zoiets?
 

25/01/2011 20:11:34
Quote Anchor link
Je moet zelf sorten.
Of met XSL gaan werken.
 
Jordi Kroon

Jordi Kroon

25/01/2011 20:24:20
Quote Anchor link
Hoe wil ik dit zelf gaan sorteren het word via de server van xfire opgehaald naar mijn website, Als er een nieuw lid bijkomt word deze automatisch toegevoegd aan de memberlist. Dan kan ik het toch niet sorteren
 
Jens V

Jens V

25/01/2011 20:29:02
Quote Anchor link
Je kan je array nog altijd zelf sorteren door je eigen functies te schrijven... Of zoals Karl zegt met XSL werken en je XML gaan sorteren voor je hem met php inleest.
Gewijzigd op 25/01/2011 20:29:27 door Jens V
 
Jaron T

Jaron T

25/01/2011 22:01:11
 

25/01/2011 22:05:44
Quote Anchor link
Jordi kroon op 25/01/2011 20:24:20:
Hoe wil ik dit zelf gaan sorteren het word via de server van xfire opgehaald naar mijn website, Als er een nieuw lid bijkomt word deze automatisch toegevoegd aan de memberlist. Dan kan ik het toch niet sorteren


Kijk dat bedoel ik dus, als je verstand van zaken hebt, dan weet je dus hoe je XML behandeld, wat je er mee kan, hoe ingewikkelde dingen je er mee kan, enzovoort enzovoort enzovoort.
 
Jordi Kroon

Jordi Kroon

26/01/2011 16:18:23
Quote Anchor link
Ik snap wel deels wat je bedoeld maar ik heb wel redelijk verstand van php maar, Ik heb nog nooit met XML gewerkt tot nu dan.

Ik heb vandaag nog eens nagedacht en heb nu deze code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
  ini_set('display_errors', 'On');
  error_reporting(E_ALL);
  
$data = file_get_contents('http://www.xfire.com/xml/0sfi0/clan_members/');

$xml = new SimpleXMLElement($data);

foreach ($xml as $array)
{


    foreach ($array as $member)
    {


        $a = array (
                'username' => $member->username ,
                'datum' => $member->joindate ,
                'online' => $member->status
            );
            
print_r ($a);
            
    }  
 }


?>


Ik werk nog alles uit alleen,
Ik las dat je kon sorteren met usort.

Maar ik zocht op en ik kwam allemaal uit bij allemaal functies enz (php.net)
Hoe moet ik precies usort gebruiken?

Ik had het al geprobeert met:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
    $b
= usort($a, member->status);
    print_r($b);
?>


Alleen dat werkt niet

Toevoeging op 26/01/2011 16:18:56:

Even titel gewijzigd
 

26/01/2011 16:28:29
Quote Anchor link
usort
usort — Sort an array by values using a user-defined comparison function

bool usort ( array &$array , callback $cmp_function )

Waar is jou callback functie dan?
En member->status klopt ook niet...
 
Jordi Kroon

Jordi Kroon

26/01/2011 16:35:50
Quote Anchor link
Ik dacht zelf iik al dat die member->status niet klopte

Toevoeging op 26/01/2011 18:03:06:

Het is mij nog steeds niet gelukt
 

26/01/2011 23:22:23
Quote Anchor link
Laat dan zien wat je probeert. En lees alle documentatie door. ALLES!
 



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.