Korrektur meines vorherigen Postings
bearbeitet von Christian Kruse
> 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?
>
> 1. Ist dein PHP-Skript selbst UTF-8-kodiert?
> 2. Hast du schon mal nach dem Wert für `default_charset` in der Ausgabe der Funktion `php_info` geschaut?
> 3. Ist der Quelltext, den du hier gezeigt hast, vollständig oder sind da Teile, z.B. mit Stringfunktionen, die du *hier* weggelassen hast?
> 4. Hast du in der PHP-Dokumentation für die von dir benutzten Funktionen nach eventuell vorhandenen Parametern für die Zeichenkodierung geschaut?
>
1. ja, ich habe es nach den ersten Kommentaren hier noch mal in den editor geladen und als utf8 ohne BOM abgespeichert und hochgeladen.
2. default_charset ist utf8. siehe [Linkbeschreibung](http://www.nachrichtentisch.de/_testindex.php)
3. 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>
~~~
4. 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.
Korrektur meines vorherigen Postings
bearbeitet von glupto
> 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?
>
> 1. Ist dein PHP-Skript selbst UTF-8-kodiert?
> 2. Hast du schon mal nach dem Wert für `default_charset` in der Ausgabe der Funktion `php_info` geschaut?
> 3. Ist der Quelltext, den du hier gezeigt hast, vollständig oder sind da Teile, z.B. mit Stringfunktionen, die du *hier* weggelassen hast?
> 4. Hast du in der PHP-Dokumentation für die von dir benutzten Funktionen nach eventuell vorhandenen Parametern für die Zeichenkodierung geschaut?
>
1. ja, ich habe es nach den ersten Kommentaren hier noch mal in den editor geladen und als utf8 ohne BOM abgespeichert und hochgeladen.
2. default_charset ist utf8. siehe [Linkbeschreibung](http://www.nachrichtentisch.de/_testindex.php)
3. 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>
~~~
4. das ist der komplette Code, weitere Funktionen benutze ich nicht.