Speciale tekens vanuit RSS naar PHP
Ik heb het volgende script draaien, echter de speciale tekens (ë,é,`,etc) worden weergegeven als letter/cijfer combinatie (' = ’). De RSS komt direct van nu.nl
Weet iemand een oplossing?
BVD Paul
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
29
30
31
32
33
34
35
36
37
38
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
29
30
31
32
33
34
35
36
37
38
<html><head>
<style>
body,html { background: transparent; }
.tekst { font-size: 64px; font-family: arial; color: white; }
.waardes { font-size: 56px; font-family: arial; color: white; }
</style>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head><body>
<p class="tekst">Laatste nieuws:</p>
<?php
$rss = new DOMDocument();
$rss->load('http://www.nu.nl/deeplink_rss2/index.jsp?r=Algemeen');
$dirtyfeed = array();
// Alle tekens gezet die ik uit mijn teksten gefilterd wil hebben
$zoek = array("á", "é", "í", "ó", "ú", "ñ", "ç", "Á", "É", "Í", "Ó", "Ú", "Ñ", "Ç", "à", "è", "ì", "ò", "ù", "À", "È", "Ì", "Ò", "Ù",
"ä", "ë", "ï", "ö", "ü", "Ä", "Ë", "Ï", "Ö", "Ü", "â", "ê", "î", "ô", "û", "Â", "Ê", "Î", "Ô", "Û");
// In de array $vervang heb ik alle Special HTML chracters neergezet die de tekens uit de $zoek array vervangen
$vervang = array("á", "é", "í", "ó", "ú", "ñ", "ç", "Á",
"É", "Í", "Ó", "Ú", "Ñ", "Ç", "à", "è", "ì", "ò",
"ù", "À", "È", "Ì", "Ò", "Ù", "ä", "ë", "ï", "ö",
"ü", "Ä", "Ë", "Ï", "Ö", "Ü", "â", "ê", "î", "ô", "û", "Â",
"Ê", "Î", "Ô", "Û");
// str_replace gebruik ik nu om de tekst die in $dirtyfeed staat te filteren op speciale tekens
$feed = str_replace($zoek,$vervang,$dirtyfeed);
foreach ($rss->getElementsByTagName('item') as $node) {
$item = array (
'title' => $node->getElementsByTagName('title')->item(0)->nodeValue,
);
array_push($feed, $item);
}
$limit = 5;
for($x=0;$x<$limit;$x++) {
$title = str_replace(' & ', ' & ', $feed[$x]['title']);
echo '<p class="waardes">'.$title.'</p>';
}
?>
<style>
body,html { background: transparent; }
.tekst { font-size: 64px; font-family: arial; color: white; }
.waardes { font-size: 56px; font-family: arial; color: white; }
</style>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head><body>
<p class="tekst">Laatste nieuws:</p>
<?php
$rss = new DOMDocument();
$rss->load('http://www.nu.nl/deeplink_rss2/index.jsp?r=Algemeen');
$dirtyfeed = array();
// Alle tekens gezet die ik uit mijn teksten gefilterd wil hebben
$zoek = array("á", "é", "í", "ó", "ú", "ñ", "ç", "Á", "É", "Í", "Ó", "Ú", "Ñ", "Ç", "à", "è", "ì", "ò", "ù", "À", "È", "Ì", "Ò", "Ù",
"ä", "ë", "ï", "ö", "ü", "Ä", "Ë", "Ï", "Ö", "Ü", "â", "ê", "î", "ô", "û", "Â", "Ê", "Î", "Ô", "Û");
// In de array $vervang heb ik alle Special HTML chracters neergezet die de tekens uit de $zoek array vervangen
$vervang = array("á", "é", "í", "ó", "ú", "ñ", "ç", "Á",
"É", "Í", "Ó", "Ú", "Ñ", "Ç", "à", "è", "ì", "ò",
"ù", "À", "È", "Ì", "Ò", "Ù", "ä", "ë", "ï", "ö",
"ü", "Ä", "Ë", "Ï", "Ö", "Ü", "â", "ê", "î", "ô", "û", "Â",
"Ê", "Î", "Ô", "Û");
// str_replace gebruik ik nu om de tekst die in $dirtyfeed staat te filteren op speciale tekens
$feed = str_replace($zoek,$vervang,$dirtyfeed);
foreach ($rss->getElementsByTagName('item') as $node) {
$item = array (
'title' => $node->getElementsByTagName('title')->item(0)->nodeValue,
);
array_push($feed, $item);
}
$limit = 5;
for($x=0;$x<$limit;$x++) {
$title = str_replace(' & ', ' & ', $feed[$x]['title']);
echo '<p class="waardes">'.$title.'</p>';
}
?>
Je bent nogal moeilijk aan het doen, gewoon je doctype goed zetten en content type op utf 8. Vervolgens kan je nog eventueel htmlspecialchars/htmlentities gebruiken
Dank voor de snelle oplossing/antwoord