Versio

RSS feed

Overzicht Reageren

Bart nukem

bart nukem

25/05/2010 16:36:44
Quote Anchor link
Hallo allemaal, ik gebruik onderstaand script om de rss feed van de hardlopen.nl weer te geven op mijn website. Is dit makkelijk aan te passen zodat alleen de feeds worden weergegeven die aan een bepaalde voorwaarde voldoet. Stel ik wil alleen feeds weergeven met de naam "moerman" en de overige feeds niet, iemand die mij op weg kan helpen?

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
<?php
include_once('./magpierss/rss_fetch.inc');
// Set error reporting for this
error_reporting(E_ERROR);
// Fetch RSS feed
$rss = fetch_rss('http://www.hardloopkalender.nl/rss-loopagenda-postcode.xml?postcode=6441&straal=50');
if ($rss)
{

 // Split the array to show first 5
 $items = array_slice($rss->items, 0, 5);
  // Cycle through each item and echo
 foreach ($items as $item )
 {

  echo "<font size=\"-1\" >";
  echo '<li><a href="'.$item['link'].' " TARGET="_blank">'.$item['title'].'</a></li>';
  echo "</font>";
 }
}

else
{
  echo '<h2>Error:</h2><p>'.magpie_error().'</p>';
}

// Restore original error reporting value
@ini_restore('error_reporting');
?>
 
PHP hulp

PHP hulp

25/05/2012 15:06:21
Gesponsorde koppelingen:
BHosted Hosting al vanaf € 1,- per maand

Controleer nu gratis jouw domeinnaam:

  
 
Synaps Framework

Synaps Framework

25/05/2010 16:48:27
Quote Anchor link
$rss = fetch_rss('http://www.hardloopkalender.nl/rss-loopagenda-postcode.xml?postcode=6441&straal=50');

En hoe moet ik weten wat deze functie nog meer inhoud? Post die ook even. =]
 
TJVB tvb

TJVB tvb

25/05/2010 16:50:32
Quote Anchor link
Wat denk je er van om eens in je foreach een if statement op te nemen waar je de controle in plaatst.
 
Bart nukem

bart nukem

25/05/2010 16:53:35
Quote Anchor link
Dat is een hele hap, hier is de URL http://code.creativecommons.org/svnroot/scicom/www/trunk/rss_fetch.inc

Maar ik dacht eigenlijk het in de array te zoeken of iet wordt gevonden volgens een bepaalde voorwaarde en indien dat zo is deze weer te geven.
 
Bart nukem

bart nukem

27/05/2010 16:55:35
Quote Anchor link
Nog is proberen, wil iemand is kijken naar deze code en bovenstaande vraag?
 
Karl Karl

Karl Karl

27/05/2010 17:19:54
Quote Anchor link
Zoals TJVB aangeeft, gewoon met if kijken.
 
Bart nukem

bart nukem

27/05/2010 17:25:27
Quote Anchor link
Moet dat voor de foreach lus? Misschien kan mij iemand een beetje meer op weg helpen door wat code te plaatsen, ik heb van alles geprobeerd maar kom er dus niet uit.
 
Karl Karl

Karl Karl

27/05/2010 17:30:27
Quote Anchor link
In de foreach.
Je kunt dan nog var_dump($item); daarin doen om te kijken wat je allemaal hebt.
 
Bart nukem

bart nukem

27/05/2010 17:43:46
Quote Anchor link
als ik var_dump($item); in de foreach plaats krijg ik onderstaand resultaat, een array met daarin een 5 tal strings, nu wil ik alleen de string laten zien met bijv. daarin het woord 'echt' is dat mogelijk?

resultaat var_dump($item);

array(5) { ["title"]=> string(61) "vr 04 jun 2010, Pepijnloop, Echt, gemeente Echt-Susteren (LI)" ["link"]=> string(66) "http://www.hardloopkalender.nl/loopevenement/1264079097/Pepijnloop" ["guid"]=> string(66) "http://www.hardloopkalender.nl/loopevenement/1264079097/Pepijnloop" ["description"]=> string(61) "vr 04 jun 2010, Pepijnloop, Echt, gemeente Echt-Susteren (LI)" ["summary"]=> string(61) "vr 04 jun 2010, Pepijnloop, Echt, gemeente Echt-Susteren (LI)" } array(5) { ["title"]=> string(77) "za 05 jun 2010, Sint Joostertrimloop, Limbricht, gemeente Sittard-Geleen (LI)" ["link"]=> string(76) "http://www.hardloopkalender.nl/loopevenement/1264087739/Sint-Joostertrimloop" ["guid"]=> string(76) "http://www.hardloopkalender.nl/loopevenement/1264087739/Sint-Joostertrimloop" ["description"]=> string(77) "za 05 jun 2010, Sint Joostertrimloop, Limbricht, gemeente Sittard-Geleen (LI)" ["summary"]=> string(77) "za 05 jun 2010, Sint Joostertrimloop, Limbricht, gemeente Sittard-Geleen (LI)" } array(5) { ["title"]=> string(49) "zo 06 jun 2010, IJzeren Man Volksloop, Weert (LI)" ["link"]=> string(77) "http://www.hardloopkalender.nl/loopevenement/1264088107/IJzeren-Man-Volksloop" ["guid"]=> string(77)
Gewijzigd op 27/05/2010 17:47:05 door bart nukem
 
Joren de Wit
Beheerder

Joren de Wit

27/05/2010 17:54:47
Quote Anchor link
Je kunt met strpos() eenvoudig kijken of een bepaalde string in een andere string voorkomt. Dus iets als:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
foreach($items as $key => $item) {
  if(strpos($item['summary'], 'Echt') === false) {
    echo 'String niet gevonden';
  }

  else {
    echo 'String gevonden';
  }
}

?>
 
Bart nukem

bart nukem

27/05/2010 17:56:06
Quote Anchor link
Hier kan ik wel iets mee, bedankt.
 
Bart nukem

bart nukem

27/05/2010 18:10:46
Quote Anchor link
De oplossing van Blanche heeft geholpen en het werkt perfect, rest nog 1 vraag kan ik ook meerdere voorwaarden instellen? Hieronder de nieuwe code voor iedereen die er wat aan heeft.

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
27
28
<?php
include_once('./magpierss/rss_fetch.inc');
// Set error reporting for this
error_reporting(E_ERROR);
// Fetch RSS feed
$rss = fetch_rss('http://www.hardloopkalender.nl/rss-loopagenda-postcode.xml?postcode=6441&straal=50');

if ($rss)
{

  // Split the array to show first 5
 $items = array_slice($rss->items, 0, 5);



  foreach($items as $key => $item) {
  if(strpos($item['summary'], 'Echt') === false) {
    echo '';
  }

  else {
     echo "<font size=\"-1\" >";
  echo '<li><a href="'.$item['link'].' " TARGET="_blank">'.$item['title'].'</a></li>';
  echo "</font>";
  }
}
}

// Restore original error reporting value
@ini_restore('error_reporting');
  ?>
  
Gewijzigd op 27/05/2010 18:13:51 door bart nukem
 
Pim -

Pim -

27/05/2010 19:04:48
Quote Anchor link
Mag ik vragen waarom je zo'n grote functie gebruikt ipv gewoon iets als Simplexml met iets als:
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
<?php
$baseUrl
= 'http://www.hardloopkalender.nl/rss-loopagenda-postcode.xml';
$queryArray = array(
    'postcode' => 6441,
    'straal'   => 50
);

$url = $baseUrl . '?' . http_build_query($queryArray); // Misschien handig?

$rss = simplexml_load_file($url); // Evt met cURL voor wat meer snelheid
foreach($rss->channel->item as $item) {
    // Doe hier iets leuks met je item
    print_r($item);
}

?>
 
Bart nukem

bart nukem

30/05/2010 14:54:59
Quote Anchor link
In onderstaande code wordt gecontroleerd op het woord 'echt', kan iemand mij op weg helpen als ik op meerdere woorden wil controleren en wanneer 1 van deze woorden voorkomt in de array het de inhoud laat zien.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
foreach($items as $key => $item) {  
  if(strpos($item['summary'], 'Echt') === false) {  
    echo '';  
  }
  
  else {  
     echo "<font size=\"-1\" >";
  echo '<li><a href="'.$item['link'].' " TARGET="_blank">'.$item['title'].'</a></li>';
  echo "</font>";  
  }  
}
}

?>


alvast namens mijn club bedankt!
Gewijzigd op 30/05/2010 14:56:04 door bart nukem
 
Joren de Wit
Beheerder

Joren de Wit

30/05/2010 15:42:52
Quote Anchor link
Je zou een array met te controleren woorden kunnen opstellen en daar met behulp van een foreach loop doorheen kunnen gaan en kunnen controleren of een woord voorkomt. Je zou het ook met preg_match() en een reguliere expressie aan kunnen pakken:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if(preg_match('_(echt|nog|meer|woorden)_is', $item['summary'])) {
    echo $item['summary'];
}

?>
 
Bart nukem

bart nukem

30/05/2010 17:42:53
Quote Anchor link
Ga ik mee aan het werk, bedankt voor de aanzet.
 



Overzicht Reageren

Get Adobe Flash player