[php-xml] sortering met inlezen XML file

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • HenkS
  • Registratie: Mei 2000
  • Laatst online: 19:17

HenkS

Da_king alias HenkS

Topicstarter
hallo,

Op mijn site geef ik youtube filmpjes weer, welke we opnemen van de gespeeld fifa-games op de xbox360.

ik lees deze url in:
http://gdata.youtube.com/feeds/api/users/fifagaming1/uploads

als je deze url rechtstreeks in je browser opent, zie je alles netjes gesorteerd op datum staan, echter als de feed inlees en weergeef staat deze niet meer op datum, en ijk kan bij de functie die ik gebruik geen optie vinden waarmee ik dit anders kan instellen.
mijn code:
[code=php]
$feedURL = 'http://gdata.youtube.com/feeds/api/users/fifagaming1/uploads';
// read feed into SimpleXML object
$sxml = simplexml_load_file($feedURL);
foreach ($sxml->entry as $entry) {
// get nodes in media: namespace for media information
$media = $entry->children('http://search.yahoo.com/mrss/');

// get video player URL
$attrs = $media->group->player->attributes();
$watch = $attrs['url'];
$watch .= "&fmt=18";

// get video thumbnail
$attrs = $media->group->thumbnail[0]->attributes();
$thumbnail = $attrs['url'];

// get <yt:duration> node for video length
$yt = $media->children('http://gdata.youtube.com/schemas/2007');
$attrs = $yt->duration->attributes();
$length = $attrs['seconds'];
$gd = $entry->children('http://schemas.google.com/g/2005');
if ($gd->rating) {
$attrs = $gd->rating->attributes();
$rating = $attrs['average'];
} else {
$rating = 0;
}
<?php echo $watch; ?>"><?php echo $media->group->title; ?>
<a target="_new" href="<?php echo $watch; ?>"><img src="<?php echo $thumbnail;?>" /></a>


}
[/code=php]


Dus hoe verander ik de volgorde? zelf zou ik verwachten een parameter in simplexml_load_file() maar daar vind ik dus niks over

[ Voor 4% gewijzigd door HenkS op 14-05-2009 09:57 ]


Acties:
  • 0 Henk 'm!

  • Noork
  • Registratie: Juni 2001
  • Niet online
Kun je de resultaten niet eerst naar een array schrijven en deze sorteren op datum?

Acties:
  • 0 Henk 'm!

  • HenkS
  • Registratie: Mei 2000
  • Laatst online: 19:17

HenkS

Da_king alias HenkS

Topicstarter
ja zou eventueel wel kunnen ,maar ik vraag me af waarom een file die ik inlees welke goed gesorteerd is, bij het inlezen echt door elkaar gaat lopen. niet eens de sorterings ASC of DESC fout, maar echt door elkaar. zou toch niet moeten lijkt me zo, en daardoor heb ik het idee dat ik toch iets fout doe.

Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Kijk sowieso eens naar SQL injection, want al je databasegegevens liggen open.

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


Acties:
  • 0 Henk 'm!

  • HenkS
  • Registratie: Mei 2000
  • Laatst online: 19:17

HenkS

Da_king alias HenkS

Topicstarter
bedankt voor dat advies!

Acties:
  • 0 Henk 'm!

  • foliant
  • Registratie: Juli 2007
  • Laatst online: 19-01-2022
Voor zover ik kan zien is dit een bekend probleem, zie php manual - simplexml_load_file

Acties:
  • 0 Henk 'm!

  • HenkS
  • Registratie: Mei 2000
  • Laatst online: 19:17

HenkS

Da_king alias HenkS

Topicstarter
ja inderdaad. echter werkt de oplossing genoemd op die site ook niet, er staat:
To avoid this, just use count() and walk through the array using for().

dit heb ik gedaan, maar is compleet zinloos want als ik dit doe:
$xml = simplexml_load_file($feedURL);

en dan print_r($xml) dan is dit object al in foute volgorde als ik de output bekijk.
wel heeft $xml een key [updated] waarop ik zou kunnen sorteren, echter lukt mij dit niet. ik heb op php.net gekeken naar usort echter kom ik er niet uit hoe ik binnen het object $xml op de key [updated] kan sorteren.

kan iemand me een duwtje in de goede richting geven? of is er meer info nodig over de opbouw van het object en de arrays hierin?

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 02:21

Janoz

Moderator Devschuur®

!litemod

HenkS schreef op donderdag 14 mei 2009 @ 09:36:
als je deze url rechtstreeks in je browser opent, zie je alles netjes gesorteerd op datum staan,
Het zou natuurlijk ook gewoon kunnen dat dit door de browser gedaan wordt he ;). Als ik het bestand gewoon download en dan bekijk (in bv notepad) dan zie ik het ook niet in de juiste volgorde staan.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • HenkS
  • Registratie: Mei 2000
  • Laatst online: 19:17

HenkS

Da_king alias HenkS

Topicstarter
dan is de vraag, hoe krijg ik het wel in goede volgorde, het zit toch in het object xml..?

Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Ik zie het probleem niet, volgens mij heeft Noork al direct een goede oplossing gegeven.
Pagina: 1