Sonderzeichen werden nicht richtig angezeigt
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
array
ausgabe
bedingung
bindestrich
code
durchlaufen code
fehler
file
http
inhalt
item
kopf
quelle
sparen
spielfilm
text
tran
umlaut
umwandlung
url
-
Hi !
Auf meiner Seite:
http://davidlohmann.de/test/service.php
habe ich einige RSS-Feeds, wo die Sonderzeichen nicht richtig angezeigt werden.
Hier meine Scripte:
<?php $inhalt="http://www.tvmovie.de/rss/tvjetzt.xml"; $website="http://www.tvmovie.de"; if (@fopen("$inhalt", "r") != "") { $quelle = @file($inhalt); $data = implode ("", $quelle); preg_match_all("|<item>(.*)</item>|Uism",$data, $items, PREG_PATTERN_ORDER); if (count($items[1])==0) { preg_match_all("|<item .*>(.*)</item>|Uism",$data, $items, PREG_PATTERN_ORDER); } for ($i=0; $i<14; $i++) { preg_match_all("|<title>(.*)</title>(.*)<link>(.*)</link>|Uism",$items[1][$i], $regs, PREG_PATTERN_ORDER); preg_match_all("|<pubDate>(.*)</pubDate>|Uism",$items[1][$i], $regs2, PREG_PATTERN_ORDER); $title = $regs[1][0]; $pubdate = $regs2[1][0]; echo '<br><span style="font-family:Arial;font-size:12px"><font color="#FF9900"><b>'.$pubdate.' </b></font><b><font color="#000080"> </font><font color="#FF9900"><a href="'.$regs[3][0].'" target="_blank"><font color="#000080">'.$title.'</font></a></font></b></span>'; } } ?>
<?php $inhalt="http://www.tvmovie.de/rss/tv2015.xml"; $website="http://www.tvmovie.de"; if (@fopen("$inhalt", "r") != "") { $quelle = @file($inhalt); $data = implode ("", $quelle); preg_match_all("|<item>(.*)</item>|Uism",$data, $items, PREG_PATTERN_ORDER); if (count($items[1])==0) { preg_match_all("|<item .*>(.*)</item>|Uism",$data, $items, PREG_PATTERN_ORDER); } for ($i=0; $i<14; $i++) { preg_match_all("|<title>(.*)</title>(.*)<link>(.*)</link>|Uism",$items[1][$i], $regs, PREG_PATTERN_ORDER); preg_match_all("|<pubDate>(.*)</pubDate>|Uism",$items[1][$i], $regs2, PREG_PATTERN_ORDER); $title = $regs[1][0]; $pubdate = $regs2[1][0]; echo '<br><span style="font-family:Arial;font-size:12px"><font color="#FF9900"><b>'.$pubdate.' </b></font><b><font color="#000080"> </font><font color="#FF9900"><a href="'.$regs[3][0].'" target="_blank"><font color="#000080">'.$title.'</font></a></font></b></span>'; } } ?>
<?php $inhalt="http://www.tvmovie.de/rss/tv2200.xml"; $website="http://www.tvmovie.de"; if (@fopen("$inhalt", "r") != "") { $quelle = @file($inhalt); $data = implode ("", $quelle); preg_match_all("|<item>(.*)</item>|Uism",$data, $items, PREG_PATTERN_ORDER); if (count($items[1])==0) { preg_match_all("|<item .*>(.*)</item>|Uism",$data, $items, PREG_PATTERN_ORDER); } for ($i=0; $i<14; $i++) { preg_match_all("|<title>(.*)</title>(.*)<link>(.*)</link>|Uism",$items[1][$i], $regs, PREG_PATTERN_ORDER); preg_match_all("|<pubDate>(.*)</pubDate>|Uism",$items[1][$i], $regs2, PREG_PATTERN_ORDER); $title = $regs[1][0]; $pubdate = $regs2[1][0]; echo '<br><font color="#FF9900"><span style="font-family:Arial;font-size:12px"><b>'.$pubdate.' <a href="'.$regs[3][0].'" target="_blank"><font color="#000080">'.$title.'</font></a></b></span></font>'; } } ?>
<?php $inhalt="http://rss.focus.de/fol/XML/rss_folnews_finanzen.xml"; $website="http://rss.focus.de"; if (@fopen("$inhalt", "r") != "") { $quelle = @file($inhalt); $data = implode ("", $quelle); preg_match_all("|<item>(.*)</item>|Uism",$data, $items, PREG_PATTERN_ORDER); if (count($items[1])==0) { preg_match_all("|<item .*>(.*)</item>|Uism",$data, $items, PREG_PATTERN_ORDER); } for ($i=0; $i<14; $i++) { preg_match_all("|<title>(.*)</title>(.*)<link>(.*)</link>|Uism",$items[1][$i], $regs, PREG_PATTERN_ORDER); preg_match_all("|<pubDate>(.*)</pubDate>|Uism",$items[1][$i], $regs2, PREG_PATTERN_ORDER); $title = $regs[1][0]; $pubdate = $regs2[1][0]; echo '<br><span style="font-family:Arial;font-size:12px"><font color="#FF9900"><b>'.$pubdate.' </b></font><b><font color="#000080"> </font><font color="#FF9900"><a href="'.$regs[3][0].'" target="_blank"><font color="#000080">'.$title.'</font></a></font></b></span>'; } } ?>
<?php $inhalt="http://www.spielfilm.de/rss/filmstarts.xml"; $website="http://www.spielfilm.de"; if (@fopen("$inhalt", "r") != "") { $quelle = @file($inhalt); $data = implode ("", $quelle); preg_match_all("|<item>(.*)</item>|Uism",$data, $items, PREG_PATTERN_ORDER); if (count($items[1])==0) { preg_match_all("|<item .*>(.*)</item>|Uism",$data, $items, PREG_PATTERN_ORDER); } for ($i=0; $i<14; $i++) { preg_match_all("|<title>(.*)</title>(.*)<link>(.*)</link>|Uism",$items[1][$i], $regs, PREG_PATTERN_ORDER); preg_match_all("|<pubDate>(.*)</pubDate>|Uism",$items[1][$i], $regs2, PREG_PATTERN_ORDER); $title = $regs[1][0]; $pubdate = $regs2[1][0]; echo '<br><span style="font-family:Arial;font-size:12px"><font color="#FF9900"><b>'.$pubdate.' </b></font><b><font color="#000080"> </font><font color="#FF9900"><a href="'.$regs[3][0].'" target="_blank"><font color="#000080">'.$title.'</font></a></font></b></span>'; } } ?>
Könnt Ihr mir helfen, das zu beheben?
Gruß David ! -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
nilswerner schrieb:
Lass alle Texte vor der Ausgabe hier durchlaufen:
function umlaute($var){ $umlaute = array("ä" => "ä", "Ä" => "Ä", "ü" => "ü", "Ãœ" => "Ü", "ö" => "ö", "Ö" => "Ö", "ß" => "ß"); $var = strtr($var, $trans); return $var; }
Wie mache ich das? -
Hi,
mach doch einfach die Umwandlung so:
// ... $title = utf8_decode($regs[1][0]); $pubdate = utf8_decode($regs2[1][0]); // ...
Außerdem kannst du dir das preg_match_all in der if Bedingung sparen, wenn 0 zurück gegeben wurden, wenn du folgenden regex verwendest:
preg_match_all("|<item(?:.*)?>(.*)</item>|Uism",$data, $items, PREG_PATTERN_ORDER);
Die if Bedingung samt Inhalt ist also nicht nötig
Grüßle
Beitrag zuletzt geändert: 20.1.2009 8:25:14 von scout -
scout schrieb:
Hi,
mach doch einfach die Umwandlung so:
// ... $title = utf8_decode($regs[1][0]); $pubdate = utf8_decode($regs2[1][0]); // ...
Außerdem kannst du dir das preg_match_all in der if Bedingung sparen, wenn 0 zurück gegeben wurden, wenn du folgenden regex verwendest:
preg_match_all("|<item(?:.*)?>(.*)</item>|Uism",$data, $items, PREG_PATTERN_ORDER);
Die if Bedingung samt Inhalt ist also nicht nötig
Grüßle
Danke ! Das hat geklappt !
Beitrag zuletzt geändert: 20.1.2009 18:16:08 von davy -
Also wegen deinem – ... sorry aber ich kann das nirgends finden... ich denk mal wird sich erledigt haben :o)
Grüßle -
scout schrieb:
Also wegen deinem – ... sorry aber ich kann das nirgends finden... ich denk mal wird sich erledigt haben :o)
Grüßle
Nein, hat sich leider noch nicht erledigt
Hier mal ein Screenshot: http://www.bilderhoster.net/img.php?id=m19z13sm.jpg
Wie behebe ich diesen Fehler? -
davy schrieb:
scout schrieb:
Also wegen deinem – ... sorry aber ich kann das nirgends finden... ich denk mal wird sich erledigt haben :o)
Grüßle
Nein, hat sich leider noch nicht erledigt
Hier mal ein Screenshot: http://www.bilderhoster.net/img.php?id=m19z13sm.jpg
Wie behebe ich diesen Fehler?
Das sollte wohl mal ein bindestrich werden ^^
Einfach mit der search und replace funktion aus dem – ein - machen -
Das Problem ist, dass es ein RSS FEED ist, und ich keinerlei Einfluß auf die Nachrichten habe.
Wie kann ich trotzdem ein Bindestrich anzeigen? -
davy schrieb:
Nein, hat sich leider noch nicht erledigt
Hier mal ein Screenshot: http://www.bilderhoster.net/img.php?id=m19z13sm.jpg
Wie behebe ich diesen Fehler?
// ab PHP 5.1.0 $title = htmlspecialchars_decode(utf8_decode($regs[1][0])); // ab PHP 4 $title = html_entity_decode(utf8_decode($regs[1][0]));
Grüßle
Beitrag zuletzt geändert: 22.1.2009 13:35:45 von scout -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage