php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 17.04.2005, 13:31  
Gast
 
Beiträge: n/a
Standard Sonderzeichen in einem RSS-Feed

Die Forensuche hat mir leider auch nicht weiterhelfen können, mein Problem ist, dass bei meinem RSS-Feed sämtliche Sonderzeichen (ä,ö,ü,etc..) als '?' angezeigt werden ..

Ich verwende folgendes Script:
PHP-Code:
<?PHP
require("./global.php");

$user $_REQUEST['user'];
$pw $_REQUEST['pw'];

//Passwort abfragen
$result $db->query("SELECT * FROM `".$table['user']."` WHERE `ID` LIKE '".$user."' AND `Passwort` LIKE '".$pw."'");
if (
mysql_num_rows($result) == 1) {
    
//Content abrufen
    
$result $db->query("SELECT * FROM `".$table['GBlog_Entry']."` WHERE `ParentID` LIKE '0' ORDER BY `Timestamp` DESC LIMIT 0,".$option['RSSLength']);
    
$rss = Array();
    while(
$row mysql_fetch_array($result)) {
        
$rss[] = $row;
    }
    
//$rss umkehren um die RSS-Reihenfolge zu korrigieren
    
$rss array_reverse($rss);
    
//Header senden
    
header("Content-Type: text/xml");
    
//Generieren der XML-Datei
    
$xml =    "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n".
            
"<rdf:RDF\n".
            
"  xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"\n".
            
"  xmlns=\"http://purl.org/rss/1.0/\"\n".
            
"  xmlns:dc=\"http://purl.org/dc/elements/1.1/\">\n".
            
"  <channel rdf:about=\"".$option['root']."/about.xml\">\n".
            
"    <title>".$option['Blog_Titel']."</title>\n".
            
"    <link>".$option['root']."</link>\n".
            
"    <description>".$option['description']."</description>\n".
            
"    <dc:publisher>".$option['autor']."</dc:publisher>\n".
            
"    <language>de-de</language>\n".
            
"    <items>\n".
            
"      <rdf:Seq>\n";
for(
$x=0;$x<count($rss);$x++) {
    
$xml .=    "        <rdf:li rdf:resource=\"".$option['root']."/blog-".$rss[$x]['ID']."-".$user."-".$pw.".html\"/>\n";
}
    
$xml .=    "      </rdf:Seq>\n".
            
"    </items>\n".
            
"  </channel>\n";
for(
$x=0;$x<count($rss);$x++) {
    
$xml .=    "  <item rdf:about=\"".$option['root']."/blog-".$rss[$x]['ID']."-".$user."-".$pw.".html\">\n".
            
"    <title>".htmlspecialchars($rss[$x]['Title'])."</title>\n".
            
"    <link>".$option['root']."/blog-".$rss[$x]['ID']."-".$user."-".$pw.".html</link>\n".
            
"    <description>".htmlspecialchars(Output($rss[$x]['Entry']))."</description>\n";
    for(
$y=0;$y<count($users);$y++) {
        if(
$rss[$x]['UserID'] == $users[$y]['ID']) $xml .=    "    <dc:creator>".$users[$y]['User']."</dc:creator>\n";
    }
    
$xml .=    "    <dc:date>".date('d.m.Y',$rss[$x]['Timestamp'])."T".date('H:i:s',$rss[$x]['Timestamp'])."Z</dc:date>\n".
            
"  </item>\n";
}
    
$xml .=    "</rdf:RDF>\n";

    
//Ausgabe der XML-Datei
    
echo $xml;

}else {
    echo     
"Login fehlerhaft !
"
.
            
"Richtiges Format: ".$option['root']."/rss-USERID-PASSWORT.xml";
}
?>
?>
Momentan würde der Feed-Quellcode so aussehen:
Code:
<?xml version="1.0" encoding="utf-8" ?>
<rdf:RDF
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns="http://purl.org/rss/1.0/"
  xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel rdf:about="http://www.GEEK1.de/about.xml">
	<title>5 Jahre</title>
	<link>http://www.GEEK1.de</link>
	<description>kranke Welt - GEEK1.de</description>
	<dc:publisher>GEEK1</dc:publisher>
	<language>de-de</language>

	<items>
	  <rdf:Seq>
		<rdf:li rdf:resource="http://www.GEEK1.de/blog-155-1-xxx.html"/>
	  </rdf:Seq>
	</items>
  </channel>
  <item rdf:about="http://www.GEEK1.de/blog-155-1-xxx.html">
	<title>Sehnsucht ..</title>
	<link>http://www.GEEK1.de/blog-155-1-xxx.html</link>
	<description>Die letzten Tage pr�gten sich haupts�chlich durch Sehnsucht.&lt;br /&gt;

&lt;br /&gt;
Sehnsucht nach..&lt;br /&gt;
&lt;div align=&quot;center&quot;&gt;.. Zweigl�cksamkeit&lt;br /&gt;
.. Einsamkeit&lt;br /&gt;
.. Schmerz&lt;br /&gt;
.. Trauer&lt;br /&gt;

.. Wissen&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
-GEEK1-</description>
	<dc:creator>GEEK1</dc:creator>
	<dc:date>17.04.2005T11:55:06Z</dc:date>
  </item>
Wenn ich nun statt mit htmlspecialchars mit htmlentities arbeite bekomme ich folgende Fehlermeldung beim Aufruf des Feeds:
Zitat:
XML-Verarbeitungsfehler: Undefinierte Entität
Adresse: http://www.geek1.de/rss-1-xxx.xml
Zeile Nr. 103, Spalte 28:Panic Room beim schlecker f&uuml;r 9,99 &acirc;�&not; *g*&lt;br /&gt;
--------------------------------------------------------------^
Eigentlich möchte ich jetzt lediglich die '&' bei den Sonderzeichen in '&amp;' umwandeln .. nur leider hab ich keine Ahnung wie ich das einigermaßen professionell bewerkstelligen soll, denn die '&' bei '&lt;' etc. sollten ja bleiben wie sie sind..

Hoffe man vertseht auf was ich hinausmöchte

PS: Komischerweise ging das ganze bis vor kurzem mit htmlspecialchars wunderbar. Erst als ich von Feed 0.9 auf 1.0 wechselte ging das mit den Sonderzeichen los.

-GEEK1-
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 17.04.2005, 14:10  
Waq
Erfahrener Benutzer
 
Registriert seit: 15.08.2004
Beiträge: 2.473
Waq
Standard

Könnte es daran liegen, dass Du utf-8 als Zeichensatz angegeben hast, in wirklichkeit aber noch iso-8859-1 verwendest? Dann würde ich auch den angeben, dann klappts auch ohne entities.
__________________
mod = master of disaster
Waq ist offline  
Alt 17.04.2005, 14:41  
Gast
 
Beiträge: n/a
Standard

Danke, dafür könnte ich mir jetzt echt selber in den Arsch treten.

Klappt nun wunderbar ..

-GEEK1-
 
Alt 17.04.2005, 15:33  
Gast
 
Beiträge: n/a
Standard

hmm wohl zu früh gefreut .. im Firefox wird mir nun alles richtig angezeigt. Nur leider im RSS-Reader (Thunderbird) nicht .. da gibts wieder richtig schöne und seltsame Zeichen ..

z.b. GefÀllt mir, hoffe "ZweiglÌcksamkeit" taucht da auch bald auf ..

Hier mal nen Test-Acc zum angucken http://www.geek1.de/rss-7-bart.xml

-GEEK1-
 
Alt 17.04.2005, 15:53  
Gast
 
Beiträge: n/a
Standard

Die "seltsamen" Zeichen haste zB. auch da:
http://www.geek1.de/index.php?action=freunde
Zitat:
Ich bin der festen Überzeugung
 
Alt 17.04.2005, 15:59  
Waq
Erfahrener Benutzer
 
Registriert seit: 15.08.2004
Beiträge: 2.473
Waq
Standard

Probier mal im header den Zeichensatz mitzusenden:
header("Content-Type: text/xml; charset=iso-8859-1");
__________________
mod = master of disaster
Waq ist offline  
Alt 17.04.2005, 16:01  
Waq
Erfahrener Benutzer
 
Registriert seit: 15.08.2004
Beiträge: 2.473
Waq
Standard

Zitat:
Zitat von GEEK1
À
Sowas passiert, wenn man utf-8-kodierte Zeichen in iso-8859-1 darstellt.
__________________
mod = master of disaster
Waq ist offline  
Alt 17.04.2005, 16:02  
Gast
 
Beiträge: n/a
Standard

doctype und meta-tag angeben überprüfen und schauen das überall iso-8859-1 eingestellt ist, irgendwo steht noch utf-8, deshalb der fehler!
 
Alt 17.04.2005, 16:10  
Waq
Erfahrener Benutzer
 
Registriert seit: 15.08.2004
Beiträge: 2.473
Waq
Standard

Zitat:
Zitat von jawbreaker
doctype und meta-tag
In RSS?
__________________
mod = master of disaster
Waq ist offline  
Alt 17.04.2005, 16:26  
Gast
 
Beiträge: n/a
Standard

@meinkel:
Danke für den Hinweis, das war ein Fehler beim einspielen der DB .. hab das ganze in Windoof gecodet und dann auf Unix aufgespielt, da ging einiges Schief.

@Waq:
Ne, hilft leider auch nix

Und mit der Zeichencodierung kenn ich mich absolut nicht aus .. leider .. ich habe eigentlich nirgends eine besondere Kodierung angegeben. Nur im RSS .. aber da gings ja mit UTF-8 und ISO-8859-1 nicht ..

@jawbreaker:
Der fehelr auf der HP liegt wo anders .. nur im RSS blick ich net durch woran es nun liegt ..

Und danke an alle für die mühe
PS: So viel war ja noch nie auf meiner HP los

-GEEK1-
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Ajax und Sonderzeichen? GSJLink HTML, Usability und Barrierefreiheit 1 11.11.2006 14:36
Die Sache mit den Sonderzeichen nach und vor Formularprüfung TailerD PHP Tipps 2006 12 02.06.2006 12:58
Wikipedia, Sonderzeichen und file_get_contents(); pb PHP Tipps 2006 2 20.01.2006 20:02
[Erledigt] Problem mit Sonderzeichen PHP -&gt; MySQL -&gt; HTML PHP Tipps 2007 18 07.12.2005 15:23
Liste nach Buchstaben und Sonderzeichen (!) sortiert odaa PHP-Fortgeschrittene 8 11.10.2005 16:26
sonderzeichen filtern/suchen socke PHP Tipps 2005-2 8 22.09.2005 07:01
[Erledigt] Sonderzeichen: &amp;#8805; Datenbanken 2 19.09.2005 16:54
Login Probleme mit Sonderzeichen im Nick PHP Tipps 2005-2 11 21.08.2005 16:54
Sonderzeichen aus einem großen Text entfernen PHP Tipps 2005 4 25.04.2005 16:51
Sonderzeichen in der Tabelle Mutatos Datenbanken 4 17.03.2005 15:28
Sonderzeichen verbieten PHP Tipps 2005 16 28.02.2005 08:36
mit html sonderzeichen sortieren Datenbanken 3 16.02.2005 15:25
Sonderzeichen über $_GET Calexico PHP Tipps 2005 1 10.02.2005 17:40
[Erledigt] sonderzeichen im browser? PHP-Fortgeschrittene 1 12.10.2004 14:29

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
rss feed sonderzeichen, rssfeed & zeichen im link, \\n sonderzeichen, rss1xxx, rss php & zeichen problem, html zeichen im rss, thunderbird rss sonderzeichen in url, index of / \passwort.xml\

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:20 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.