XML / Array
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
Kan je niet beter vragen of ze een XML aan zouden kunnen bieden?
Ik heb het doorgezocht en xfire heeft niet zoiets dus moet ik voor de moeilijkere weg gaan helaas
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.
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.
Ik heb eigenlijk nog nooit met dom en simplexml gewerkt
Dus weet ook niet precies hoe het moet
ik heb dit:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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;
}
?>
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
is een array, en kijk eens met print_r() wat je er stapsgewijs uit kan halen.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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 />";
}
}
?>
$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
Is er eigenlijk ook een functie zoals ORDER BY of zoiets?
Of met XSL gaan werken.
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
Gewijzigd op 25/01/2011 20:29:27 door Jens V
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.
Ik heb vandaag nog eens nagedacht en heb nu deze code:
Code (php)
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
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);
}
}
?>
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:
Alleen dat werkt niet
Toevoeging op 26/01/2011 16:18:56:
Even titel gewijzigd
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...
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...
Toevoeging op 26/01/2011 18:03:06:
Het is mij nog steeds niet gelukt
Laat dan zien wat je probeert. En lees alle documentatie door. ALLES!