login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Hyves RSS feed uitlezen en controlleren op bestaan ervan.

Offline Martijn2008 - 06/04/2009 20:41 (laatste wijziging 06/04/2009 20:42)
Avatar van Martijn2008PHP beginner Hallo Sitemasters,

Daar ben ik weer. Dit keer wil ik graag de RSS feeds van openbare Hyves-profielen uitlezen. Heeft iemand enig idee hoe ik dit het beste kan aanpakken en hoe ik kan controleren op het bestaan van de feed. Ik bedoel, stel nou eens dat een gebruiker een niet bestaande Hyves opgeeft, dan loopt mijn script dus mooi even in een fout. Dat wil ik dus voorkomen.

In Google kwam ik ook nog een link tegen naar de Hyves-API. Kan ik hier misschien wat mee?

Bedankt alvast voor al jullie reacties !

Martijn

17 antwoorden

Gesponsorde links
Offline ibmos2warp - 06/04/2009 20:50
Avatar van ibmos2warp PHP interesse API heb je zo te zien niks aan.
Feeds uitlezen is niet moeilijk, ik denk dat je hier wel wat aan hebt.
Offline Martijn2008 - 06/04/2009 21:01 (laatste wijziging 06/04/2009 21:28)
Avatar van Martijn2008 PHP beginner Je bedoeld dat ik gebruik zou moeten van een class? Kan het niet gewoon met dit script van Sima?

Update: Ik ben nu met deze class bezig, zou iemand mij misschien willen helpen?
Offline marten - 06/04/2009 22:27
Avatar van marten Beheerder Allemaal veel te moeilijk wat jij nodig hebt is:

PHP.net: simplexml

  1. <leden>
  2. <lid>
  3. <naam>Jaap</naam>
  4. <straat>Jaapstraat</straat>
  5. </lid>
  6. </leden>


Om hier de straat uit te lezen doe je:

  1. $xml = simplexml_load_file('leden.xml');
  2. echo $xml->leden->lid->straat;


Kind kan de was doen. Meerdere leden erin? Simpel foreach gebruiken
Offline Martijn2008 - 06/04/2009 22:31 (laatste wijziging 06/04/2009 22:31)
Avatar van Martijn2008 PHP beginner Tot zover was het mij ook nog gelukt, maar ik loop vast op die maffe tags:

- <media:id>
- <hyves:viewcount>
- <hyves:respectcount>

Daarbij vraag ik me ook af of ik de data misschien moet cache. Eigenlijk zou je gewoon ook even naar de structuur van de RSS moeten kijken van een willekeurig Hyves profiel. Ik heb het dan met name over het fotoboek. Misschien snap je dan wat ik bedoel. Bedankt alvast voor je reactie !
Offline marten - 06/04/2009 22:31
Avatar van marten Beheerder plaats eens er eentje.
Offline Martijn2008 - 06/04/2009 22:34
Avatar van Martijn2008 PHP beginner Het is toch raar als ik zomaar iemands RSS hier neer plof !
Offline ibmos2warp - 06/04/2009 22:39
Avatar van ibmos2warp PHP interesse
Martijn2008 schreef:
Tot zover was het mij ook nog gelukt, maar ik loop vast op die maffe tags:

- <media:id>
- <hyves:viewcount>
- <hyves:respectcount>

Daarbij vraag ik me ook af of ik de data misschien moet cache. Eigenlijk zou je gewoon ook even naar de structuur van de RSS moeten kijken van een willekeurig Hyves profiel. Ik heb het dan met name over het fotoboek. Misschien snap je dan wat ik bedoel. Bedankt alvast voor je reactie !

Das niet maf, dat zijn namespaces.
Zonder rss weten wij het ook niet.
Offline marten - 06/04/2009 22:40
Avatar van marten Beheerder ach ja zelf weten

maar waar je even op moet letten is de xml basis.

De dubbele punt houdt in dat je te maken hebt met een andere namespace. Een namespace wil niks anders zeggen van aan die voorwaarden moet het veld voldoen. Door gebruik te maken van namespaces kan je bijvoorbeeld zeggen dat <naam> in de login namespace 12 karakters mag zijn en <naam> in de adres namespace 50 karakters.

Kijk hier welke functies je moet gebruiken:

http://nl2.php.net/manual/en/refs.xml.php
Offline Martijn2008 - 06/04/2009 23:25 (laatste wijziging 07/04/2009 16:12)
Avatar van Martijn2008 PHP beginner UPDATE: Ik heb gekozen voor SimpelPie RSS Reader. Dit werkt, jammer is alleen wel dat de namespaces en de smilies in de titels niet geparsed worden. Heeft iemand misschien hier een oplossing voor?
Offline Rik - 07/04/2009 18:24
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Ik ken SimplePie niet, maar het ziet er op het eerste gezicht in ieder geval heel erg uitgebreid uit.

Smilies kun je zonodig zelf parsen, daar zal geen kant en klaar functie voor in SimplePie zitten zolang je ze als plaintext uit het feed haalt.
Wat nu precies het probleem is met de namespaces snap ik nog niet. Uit wat Marten zegt begrijp ik dat je ze gewoon kunt negeren als je er van uit gaat dat je een nette feed terugkrijgt.
Offline Martijn2008 - 07/04/2009 19:07 (laatste wijziging 07/04/2009 19:40)
Avatar van Martijn2008 PHP beginner @Boukefalos De essentiële data waaronder smilies en de links naar die smilies staan juist in de namespaces, namelijk:
- <media:title>
Het is juist de bedoeling dat ik ook data uit de namespace kan parsen, ik wil ze dus alles behalve negeren. Ik gebruik nu dus de SimpelPie RSS reader en hoop dat het daarmee opgelost kan worden. De feed wordt nu al gedeeltelijk geparsed door deze reader met de demo setup, maar de namespaces worden genegeerd. Iets wat ik dus juist niet wil, omdat in die namespaces o.a. bijvoorbeeld die smilies bevat. Dat is mijn probleem, ik hoop dat je me nu beter kunt volgen.
Offline Rik - 07/04/2009 19:49
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Ah, ik snap nu wat je bedoelt. Ik probeer even datzelfde als wat jij nu hebt te reproduceren, maar ik kan niet echt een feed vinden waarin alle profielinformatie bij elkaar staat zoals jij lijkt te bedoelen.

Als ik in een feed van wiewatwaar's kijk (die vol staan met emoticons) staat er telkens gewoon een img tag, dus dat lijkt ook geen probleem. Maar daar komen sowieso geen namespaces in voor.

Dus mijn vraag: kun je een voorbeeld feed (url) posten?
Offline Martijn2008 - 08/04/2009 00:01
Avatar van Martijn2008 PHP beginner De class stript de HTML-tags eruit, heb dit op false gezet, maar ook dat werkt niet. De smilies worden gewoon niet zichtbaar:(
Offline Rik - 08/04/2009 09:04
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Misschien stript hij ze nu niet, maar encode hij ze alleen. Ik weet niet of het werkt, maar je kunt eens de set_input_encoding(false) functie proberen.
Offline Martijn2008 - 08/04/2009 11:20 (laatste wijziging 08/04/2009 12:15)
Avatar van Martijn2008 PHP beginner Top, zal is kijken of dat werkt !

UPDATE: Ook dat werkt niet 
UPDATE 2: Alle codes die als een comment staan, heb ik al geprobeerd.

  1. <?
  2.  
  3. // Parse it
  4. $feed = new SimplePie();
  5. $feed->set_feed_url($rss);
  6.  
  7. // $feed->set_input_encoding(false);
  8.  
  9. $feed->set_cache_duration(14400);
  10. $feed->set_image_handler('image_handler.php', 'img'); // handler_image.php?image=67d5fa9a87bad230fb03ea68b9f71090
  11.  
  12. // $feed->strip_htmltags(false);
  13.  
  14. $feed->set_timeout(10);
  15.  
  16. // $feed->strip_attributes(false);
  17.  
  18. $feed->init();
  19.  
  20. ?>



Offline Rik - 08/04/2009 14:35
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Ik heb ook nog wat geprutst, maar ik kom er ook niet uit. Het lijkt toch bijna alsof die class gewoon niet goed is.  
Offline Martijn2008 - 08/04/2009 14:48 (laatste wijziging 22/05/2009 23:08)
Avatar van Martijn2008 PHP beginner Het hoeft wat mij betreft ook niet perse met die class, het is maar een probeersel. Als er een alternatief is, dat wat wel werkt, dan hoor ik dat natuurlijk ook graag.

UPDATE: Ik heb waarschijnlijk de oplossing gevonden, maar weet zelf niet hoe ik de code moet aanpassen aan de Hyves feed. Zou iemand mij daarbij misschien willen helpen. De oplossing staat naar mijn vermoeden op deze pagina.

Hartstikke bedankt alvast voor jullie hulp!
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.235s