Algemeen forum voor discussie over de website
#74985
Theo,

Dank voor je voorzet.
;-) Nu nog voor de applicaties een uitbreiding daarvan, die selectief de krenten uit de pap haalt,
met een uitvoer waarmee een vervolgfunctie eenvoudig hapklare brokken krijgt .......

MVG, Anton
#74986
Ik gebruik al ruim een jaar de RSS feeds van het knmi, voor zowel de verwachtingen als ook de waarschuwingen.
Ook omdat de site van meteo alarm enige tijd geleden ook overhoop is gehaald
Ik gebruik een rss feed plugin via wordpress voor de verwachtingen
Voor de waarschuwingen een php script en daar koppel ik ook de code kleuren aan voor de background kleuren

Het werkt goed voor mijn site
#74989
Heeft er al iemand een script ontwikkeld waarmee we de KNMI data weersverwachting weer op onze sites kunnen plaatsen nu de oude ftp manier niet meer werkt?

Op mijn site is het nu akelig leeg :?

zie: https://www.wxhoogeloon.nl/index.php en dan bij de tabel: "Weersverwachting van het KNMI voor de komende 6 dagen" en bij: https://www.wxhoogeloon.nl/pages/weersv ... ngKNMI.php .

Op de eerste pagina had ik in tabel de weersverwachting voor de komende 6 dagen en via de 2de link de weersverwachting voor Nederland in geschreven tekst.

Het zou fijn als deze weer zichtbaar waren.
#74991
Dit is mijn url: https://weerstationafferden.nl/knmi-weerbericht/

Zo staat het in wordpress:
<iframe src="https://weerstationafferden.nl/KNMI%20W ... ericht.php" width="1200" height="600"><span style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" data-mce-type="bookmark" class="mce_SELRES_start"></span></iframe>

Onderstaande het php bestand:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Weerbericht</title>

<style type="text/css">
<!--
body,td,th {
font-family: Arial, Helvetica, sans-serif;
font-size: 16px;
color: #FFF;
font-variant: normal;
}
body {
background-color: #808080;
margin-top: 0px;
margin-bottom: 0px;
}
.style7 {
color: #FFF;
font-weight: bold;
font-family: Arial, Helvetica, sans-serif;
font-size: 16px;
}
a:link {
color: #CCCCCC;
text-decoration: none;
}
a:visited {
text-decoration: none;
}
a:hover {
text-decoration: underline;
color: #666666;
}
a:active {
text-decoration: none;
}
.style9 {
font-size: 10px;
color: #cccccc;
font-family: Verdana, Arial, Helvetica, sans-serif;
}
.style13 {color: #999999}
-->
</style>
</head>
<?php
//Weerbericht van het KNMI gemaakt door www.weerstationlangerak.nl
//op basis van xml-gegevens van buienradar.nl
//kleuren hierboven met de styles aan te passen aan de eigen site

// zet de XML file om in een php-string
$buienradar = "http://xml.buienradar.nl/";

// laad de XML file
$xml1 = @simplexml_load_file($buienradar) or die ("no file loaded");

// creëer de variabelen
$opgemaakt=$xml1->weergegevens->verwachting_vandaag->tijdweerbericht;
$verwachting=$xml1->weergegevens->verwachting_vandaag->titel;
$verwachtingtekst=$xml1->weergegevens->verwachting_vandaag->tekst;
$buienradar=$xml1->weergegevens->actueel_weer->buienradar->url;
$weertype=$xml1->weergegevens->actueel_weer->buienradar->icoonactueel;
$weertypetekst=$xml1->weergegevens->actueel_weer->buienradar->icoonactueel[zin];
$buienindex=$xml1->weergegevens->actueel_weer->buienindex->waardepercentage;

//maak hieronder in de body een tabel waarin de variabelen worden aangeroepen
?>
<body>
<div align="center">
<table align="CENTER" width="704px" border="0" cellspacing="1" cellpadding="10">
<tr>
<td width="64" bgcolor="#eeeeee">



<div align="center"><?php echo '<img src="' . $weertype . '">';?></div></td>
<td width="557" bgcolor="#333333"><div align="left"><?php echo "Nu in Nederland: $weertypetekst. <BR> Buienindex dekkingsgraad $buienindex % *)";?></div></td>
</tr>
<tr>
<td colspan="2" bgcolor="#999999" class="style9" ><?php echo "De verwachting voor vandaag en morgen - $opgemaakt uur:";?></td>
</tr>
<tr>
<td colspan="2" bgcolor="#888888"><div align="left"><?php echo "$verwachting <BR>";?></div></td>
</tr>
<tr>
<td colspan="2" bgcolor="#999999"><?php echo "$verwachtingtekst <BR><BR>";?></td>
</tr>
<tr>
<td colspan="2" bgcolor="#333333"><div align="center" class="style9"><span class="style13">Bron: KNMI - </span><a href="http://www.buienradar.nl" target="_blank">Buienradar.nl</a></br>
</div></td>
</tr>
<tr>
<td colspan="2"><span class="style9">*) De buienindex dekkingsgraad toont hoeveel procent van Nederland bedekt is met buien.</span></td>
</tr>
</table>



</div>
</body>
</html>
#74992
Als je de XML van het KNMI, "https://cdn.knmi.nl/knmi/xml/rss/rss_KN ... tingen.xml" wil gebruiken, zou je dat met het volgende php script zichtbaar kunnen maken.
Code: Selecteer alles
<?php

$url = "https://cdn.knmi.nl/knmi/xml/rss/rss_KNMIverwachtingen.xml";

// Het XML-bestand ophalen
$xml = file_get_contents($url);

// Controleren of het ophalen succesvol was
if ($xml !== false) {
    // Het XML-bestand parsen
    $xmlObj = simplexml_load_string($xml);

    // Begin een div voor de uitlijning
    echo "<div style='text-align: left;'>";

    // Itereren over elk item
    foreach ($xmlObj->channel->item as $item) {
        // De titel en beschrijving van elk item ophalen
        $title = (string)$item->title;

        // Een DOMDocument maken van de beschrijving
        $description = new DOMDocument();
        // Karaktercodering expliciet instellen op UTF-8
        $description->loadHTML('<?xml encoding="UTF-8">' . (string)$item->description);

        // Zoeken naar het patroon "Uitgifte:" en het verwijderen
        $xpath = new DOMXPath($description);
        $nodes = $xpath->query('//text()[contains(.,"link:")]');
        foreach ($nodes as $node) {
            $node->parentNode->removeChild($node);
        }

        // Verwijder hyperlinks
        $links = $description->getElementsByTagName('a');
        foreach ($links as $link) {
            $parentNode = $link->parentNode;
            while ($link->firstChild) {
                $parentNode->insertBefore($link->firstChild, $link);
            }
            $parentNode->removeChild($link);
        }

        // Afdrukken van de titel en beschrijving
        echo "<div style='text-align: left;'>$title</div>\n";
        // Karaktercodering instellen bij het opslaan van de HTML
        echo mb_convert_encoding($description->saveHTML(), 'UTF-8', 'HTML-ENTITIES') . "\n";
    }

    // Sluit de div voor de uitlijning
    echo "</div>";
} else {
    echo "Fout bij het ophalen van het XML-bestand.";
}

?>

Je krijgt dan dit als uitkomst.
https://weerstationsinthubert.nl/
#74993
Het kan veel simpeler
Met dit script op je webpagina
Code: Selecteer alles
<?php
$knmi = "https://cdn.knmi.nl/knmi/xml/rss/rss_KNMIverwachtingen.xml";
$feed = simplexml_load_file($knmi) or die("Error: Cannot create object");
//print_r($feed);
$titel = (string) $feed->channel->item[0]->title;
$verwa = (string) $feed->channel->item[0]->description;
$titme = (string) $feed->channel->item[1]->title;
$meerd = (string) $feed->channel->item[1]->description;
$titla = (string) $feed->channel->item[2]->title;
$langt = (string) $feed->channel->item[2]->description;
?>
en deze regel op je KNMI pagina
Code: Selecteer alles
<div style="color:#000080;text-align:left;float:left;">			 
<?php
echo "<br><B>KNMI-Verwachtingen<br><br>",$titel,"</B><br>",$verwa,"<br><B>",$titme,"</B><br>",$meerd,"<br><br><B>",$titla,"</B><br>",$langt;?>
</div>
?>
zie je dit https://www.hetweerinalkmaar.nl/#view2
#74998
weerstation schreef: 29 sep 2023, 14:15 Als je de XML van het KNMI, "https://cdn.knmi.nl/knmi/xml/rss/rss_KN ... tingen.xml" wil gebruiken, zou je dat met het volgende php script zichtbaar kunnen maken.
Code: Selecteer alles
<?php

$url = "https://cdn.knmi.nl/knmi/xml/rss/rss_KNMIverwachtingen.xml";

// Het XML-bestand ophalen
$xml = file_get_contents($url);

// Controleren of het ophalen succesvol was
if ($xml !== false) {
    // Het XML-bestand parsen
    $xmlObj = simplexml_load_string($xml);

    // Begin een div voor de uitlijning
    echo "<div style='text-align: left;'>";

    // Itereren over elk item
    foreach ($xmlObj->channel->item as $item) {
        // De titel en beschrijving van elk item ophalen
        $title = (string)$item->title;

        // Een DOMDocument maken van de beschrijving
        $description = new DOMDocument();
        // Karaktercodering expliciet instellen op UTF-8
        $description->loadHTML('<?xml encoding="UTF-8">' . (string)$item->description);

        // Zoeken naar het patroon "Uitgifte:" en het verwijderen
        $xpath = new DOMXPath($description);
        $nodes = $xpath->query('//text()[contains(.,"link:")]');
        foreach ($nodes as $node) {
            $node->parentNode->removeChild($node);
        }

        // Verwijder hyperlinks
        $links = $description->getElementsByTagName('a');
        foreach ($links as $link) {
            $parentNode = $link->parentNode;
            while ($link->firstChild) {
                $parentNode->insertBefore($link->firstChild, $link);
            }
            $parentNode->removeChild($link);
        }

        // Afdrukken van de titel en beschrijving
        echo "<div style='text-align: left;'>$title</div>\n";
        // Karaktercodering instellen bij het opslaan van de HTML
        echo mb_convert_encoding($description->saveHTML(), 'UTF-8', 'HTML-ENTITIES') . "\n";
    }

    // Sluit de div voor de uitlijning
    echo "</div>";
} else {
    echo "Fout bij het ophalen van het XML-bestand.";
}

?>

Je krijgt dan dit als uitkomst.
https://weerstationsinthubert.nl/
...en heb bovenstaande code van Weerstation Sint Hubert gebruikt tot volle tevredenheid, bedankt voor het delen!
( https://www.wxhoogeloon.nl/pages/weersv ... ngKNMI.php )
#75004
Bedankt Theo,

Ik heb het php script van de knmi rss feed op mijn leuven template gezet als vervanging van het oude script
Werkt in ieder geval en ik zal tzt proberen met javascript eea interactiever maken

Groeten Tjeerd
#75026
Intussen werkt de xml rss feed van het KNMI ook niet meer, iemand een andere oplossing om nog een mooi weerbericht op de site te zetten?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 8