login  Naam:   Wachtwoord: 
Registreer je!
 Forum

RSS reader (FangorN) (Opgelost)

Offline fbijltje - 25/08/2014 12:54
Avatar van fbijltjeNieuw lid Ik gebruik onderstaande reader, werkt prima !!!
http://www.site...RSS_reader

Nu wil ik voor de items de pubDate hebben van de channel. Hoe doe ik dat...php code gaat me voor nu nog wat te ver...FangorN?
Bedankt alvast voor de moeite!!
Frans

  1. <?php
  2. $items = $rss->get_items(0); // aantal items in channel 0
  3. // de informatie die je wilt afdrukken hangt af van wat er in de feed aangeboden wordt en
  4. // wat je zelf wilt laten zien, deze zal dus niet altjd hetzelfde zijn
  5. for($i=0; $i < sizeof($items); $i++) {
  6. echo "<b><i><a href=\"".$items[$i]['link']."\" target=\"_blank\">".$items[$i]['title']."</a></i></b><br> ";
  7. echo "<h5><i>Geplaatst om ";
  8. echo date("d-m-Y H:i", strtotime($items[$i]['pubDate']))." uur.<br><br></i></h5>\n";
  9.  
  10. echo $items[$i]['description'];
  11. echo "<br><br>\n";
  12. }
  13.  
  14. $rss->free_parser(); // geef de parser weer vrij
  15. unset($rss); // als je meerdere feeds op n pagina wilt zetten moet je het object unsetten (of een andere var-naam gebruiken)
  16. ?>

2 antwoorden

Gesponsorde links
Offline Thomas - 25/08/2014 15:06
Avatar van Thomas Moderator De beschikbare channel-info kun je opvragen via de methode get_channel_info(<channel_nummer>).

Indien de feed maar één channel (index 0) heeft dan wordt dit zoiets:
  1. <?php
  2. // creeer object enzo hier, resultaat toegekend aan $rss
  3. // ...
  4.  
  5. // haal info op van channel 0
  6. $channelInfo = $rss->get_channel_info(0);
  7.  
  8. // indien de informatie beschikbaar is
  9. if (isset($channelInfo['pubDate'])) {
  10. $datum = $channelInfo['pubDate'];
  11. } else {
  12. // pech :(
  13. $datum = '-';
  14. }
  15.  
  16. // $datum bevat nu de pubDate van channel 0
  17. ?>
Bedankt door: fbijltje
Offline fbijltje - 25/08/2014 15:48 (laatste wijziging 28/08/2014 08:36)
Avatar van fbijltje Nieuw lid Werkt!! Heel hartelijk dank, FangorN

Vervolgens heb ik er het volgende van gemaakt (rssfeed.php), zie code.
...voor de beginnende php'er?...zoals ik.
 
  1. <?php
  2. /////////////////////////////////////////////////////////////////////////////////
  3. // voorbeeld #1 //
  4. // lees een feed zonder caching //
  5. // //
  6. // Aangepast/Toegevoegd 25 augustus 2014. Afgestemd op RSS feed Volleybal.nl //
  7. // met dank aan FangorN (Thomas van den Heuvel). //
  8. /////////////////////////////////////////////////////////////////////////////////
  9.  
  10.  
  11. require("class.rss20.php"); // include class-file
  12.  
  13. function Vertaal()
  14. {
  15.  
  16. global $datum;
  17.  
  18. //extract gegevens van pubDate bv. "Wed, 25 Aug 2014 19:32:29 +0200" welke gezien wordt als string!! Is nu CEST.
  19. $dag = substr($datum, 0, 3);
  20. $dagnum = substr($datum, 5, 2);
  21. $maand = substr($datum, 8, 3);
  22. $jaar = substr($datum, 12, 4);
  23. $tijd = substr($datum, 17, 5);
  24.  
  25. //vertalen dag
  26. if($dag == "Mon"){$day = "maandag";}
  27. elseif($dag == "Tue"){$dag = "dinsdag";}
  28. elseif($dag == "Wed"){$dag = "woensdag";}
  29. elseif($dag == "Thu"){$dag = "donderdag";}
  30. elseif($dag == "Fri"){$dag = "vrijdag";}
  31. elseif($dag == "Sat"){$dag = "zaterdag";}
  32. elseif($dag == "Sun"){$dag = "zondag";}
  33.  
  34. //vertalen maand
  35. if($month == "Jan"){$month = "januari";}
  36. elseif($maand == "Feb"){$maand = "februari";}
  37. elseif($maand == "Mar"){$maand = "maart";}
  38. elseif($maand == "Apr"){$maand = "april";}
  39. elseif($maand == "May"){$maand = "mei";}
  40. elseif($maand == "Jun"){$maand = "juni";}
  41. elseif($maand == "Jul"){$maand = "juli";}
  42. elseif($maand == "Aug"){$maand = "augustus";}
  43. elseif($maand == "Sep"){$maand = "september";}
  44. elseif($maand == "Nov"){$maand = "november";}
  45. elseif($maand == "Dec"){$maand = "december";}
  46. // opbouwen nieuwe $datum met extra tekst
  47. $datum = $dag.", ".$dagnum." ".$maand." ".$jaar." om ".$tijd." uur.";
  48. }
  49.  
  50. $rss = new rss20(); // maak een rss-object aan
  51.  
  52. $rss->newfile("http://www.volleybal.nl/application/handlers/export.php?format=rss&type=news"); // lees een externe feed (zonder caching)
  53. //bovenstaande link verwijst naar een applicatie met de feed als output....dus bij aanroepen uptodate !!!, zie pubDate van de channel.
  54. $rss->parse(); // parse de XML-file
  55.  
  56. ?>
  57. <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/></head>
  58. <link href="../Douze_sheet.css" rel="stylesheet" type="text/css">
  59. <h3>Nevobo nieuws</h3>
  60.  
  61. <h4>
  62. <?php
  63. //CHANNEL
  64. $channelInfo = $rss->get_channel_info(0);
  65. $datum = $channelInfo['pubDate'];
  66. Vertaal(); //ontleed de string ($datum) en bouwt deze weer in het nederlands op, return $datum, funktie wordt ook bij items gebruikt
  67. $titel = substr($channelInfo['title'], 0, 8);//Eerste deel van title.
  68. $titel2 = substr($channelInfo['title'], 9, 12);//Tweede deel van title.
  69. $link = "<a href=\"".$channelInfo['link']."\" target=\"_blank\">".$titel2."</a>";
  70. $email = "<a href = mailto:".substr($channelInfo['webMaster'], 0, 14).">mail</a>"; //webMaster bevat naast het emailadres ook andere tekst die wordt eruit gefilterd.
  71. echo "<h5><i>".$titel." ".$link.". Aangemaakt op ".$datum." (".$email." Nevobo)</i></h5><br>\n";// echo strings genaakt uit channelInfo
  72. //END CHANNEL
  73.  
  74. //ITEMS
  75. $items = $rss->get_items(0); // aantal items in channel 0
  76. // de informatie die je wilt afdrukken hangt af van wat er in de feed aangeboden wordt en
  77. // wat je zelf wilt laten zien, deze zal dus niet altjd hetzelfde zijn
  78. for($i=0; $i < sizeof($items); $i++)
  79. {
  80. echo "<b><i><a href=\"".$items[$i]['link']."\" target=\"_blank\">".$items[$i]['title']."</a></i></b><br>\n";
  81. $datum = $items[$i]['pubDate'];
  82. Vertaal();
  83. echo "<h5><i>Geplaatst op ".$datum."<br><br></i></h5>\n";
  84. echo strip_tags($items[$i]['description']); //Nevobo gebruikt relatieve links in de description, geeft niet werkende links. Hier worden alle "code" verwijdert uit de description.
  85. echo "<br><br>\n";
  86. }
  87. //END ITEMS
  88.  
  89. $rss->free_parser(); // geef de parser weer vrij
  90. unset($rss); // als je meerdere feeds op een pagina wilt zetten moet je het object unsetten (of een andere var-naam gebruiken)
  91. ?></h4>
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.21s