RSS feed
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)
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
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');
?>
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');
?>
$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. =]
En hoe moet ik weten wat deze functie nog meer inhoud? Post die ook even. =]
Wat denk je er van om eens in je foreach een if statement op te nemen waar je de controle in plaatst.
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.
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.
Nog is proberen, wil iemand is kijken naar deze code en bovenstaande vraag?
Zoals TJVB aangeeft, gewoon met if kijken.
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.
In de foreach.
Je kunt dan nog var_dump($item); daarin doen om te kijken wat je allemaal hebt.
Je kunt dan nog var_dump($item); daarin doen om te kijken wat je allemaal hebt.
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)
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
Je kunt met strpos() eenvoudig kijken of een bepaalde string in een andere string voorkomt. Dus iets als:
Hier kan ik wel iets mee, bedankt.
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)
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
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');
?>
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
Mag ik vragen waarom je zo'n grote functie gebruikt ipv gewoon iets als Simplexml met iets als:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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);
}
?>
$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);
}
?>
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.
alvast namens mijn club bedankt!
Code (php)
alvast namens mijn club bedankt!
Gewijzigd op 30/05/2010 14:56:04 door bart nukem
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)
1
2
3
4
5
2
3
4
5
<?php
if(preg_match('_(echt|nog|meer|woorden)_is', $item['summary'])) {
echo $item['summary'];
}
?>
if(preg_match('_(echt|nog|meer|woorden)_is', $item['summary'])) {
echo $item['summary'];
}
?>
Ga ik mee aan het werk, bedankt voor de aanzet.




