Das bestätigt die Vermutung einiger, dass hier irgendwo auf deiner Seite etwas schief läuft. Die Seite wird offensichtlich ISO-8859-1- statt UTF-8-kodiert ausgeliefert, sonst wäre der mit
utf8_decode
behandelte Text verstümmelt und der UTF-8-kodierte Text nicht.Deshalb noch ein paar Fragen?
- Ist dein PHP-Skript selbst UTF-8-kodiert?
- Hast du schon mal nach dem Wert für
default_charset
in der Ausgabe der Funktionphp_info
geschaut?- Ist der Quelltext, den du hier gezeigt hast, vollständig oder sind da Teile, z.B. mit Stringfunktionen, die du hier weggelassen hast?
- Hast du in der PHP-Dokumentation für die von dir benutzten Funktionen nach eventuell vorhandenen Parametern für die Zeichenkodierung geschaut?
-
ja, ich habe es nach den ersten Kommentaren hier noch mal in den editor geladen und als utf8 ohne BOM abgespeichert und hochgeladen.
-
default_charset ist utf8. siehe Linkbeschreibung
-
Der Quelltext ist vollständig, das sieht jetzt in der php-Datei so aus:
<div class="border"><a href="http://www.sr-online.de/sronline/nachrichten/hoerfunknachrichten/index.html" target='_blank'>
<img src="logos/sron.jpg" alt="Saarländischer Rundfunk" title= "Quelle: SR" style=" margin:3px 0px 5px -45px ; padding:0px;"/></a>
<ul><?php
$data = file_get_contents('http://www.sr-online.de/sronline/nachrichten/hoerfunknachrichten/hoerfunknachrichten_aktuell100~_seite-4.html');
$doc = new DOMDocument();
$doc->loadHTML($data);
$xPath = new DOMXPath($doc);
foreach ($xPath->query('//div/p') as $node2) {
if (($zaehler <= 10)&& ($node2->nodeValue !== '') && ($node2->nodeValue !== NULL)){
echo "url: " . urlencode($node2->nodeValue);
}
}
?></ul> </div>
- das ist der komplette Code, weitere Funktionen benutze ich nicht.
@edit: Inzwischen ist bei sr-online ein andere Meldung vorhanden, deshalb steht auf der Seite nicht mehr die "Bordell"-Meldung von vorhin mit den Anführungszeichen.