Tach auch,
NEIN, das ist nicht der x-te Thread mit "Warum geht 'str_replace(""", "", $var);' nicht?!
Handelt sich hier meiner Meinung nach um ein komplexeres Problem. Vorab sei mal gesagt, dass ich eigentlich schon ein wenig Ahnung von der Materie hab (zwar nicht professionell, aber durchaus so viel, dass ich 98% der Probleme selber lösen kann). Nachdem ich aber gestern geschlagene 5 Stunden an diesem Fall saß und mir auch heute in der Arbeit (natürlich schön übermüdet, wie halt Progger gerne mal anstrahlen ) keine Lösung einfallen wollte, gebe ich das ganze mal an euch weiter... Hoffentlich hat hier einer mehr Ideen als ich^^
Doch nun zum Problem:
Ich lese ein RSS Feed aus (liegt als XML vor). Dazu nutze ich fsockopen. Das funktioniert soweit alles, die Felder kann ich schön splitten etc., alles wunderbar, ebenso die Ausgabe - außer wenn auf einmal Anführungszeichen vorkommen. Es sind nicht die normalen doppelten Hochkommata, sondern es sind scheinbar Sonderzeichen (zB „). Das ganze sieht (gekürzt) so aus:
Da die Zeichen im Forum (wo eben dieser Content angezeigt werden soll) nicht richtig dargestellt werden, wollte ich sie einfach mit "str_replace()" ersetzen, das geht aber leider nicht. Mit "$var = str_replace("„", "", $content);" erhalte ich als Ausgabe lediglich "Nach Abbau der Ausstellung ", der Rest ist abgeschnitten. Hab auch schon versucht durch andere Zeichen zu ersetzen statt durch "nichts", gleiches Ergebnis.
Da die Anführungszeichen auch nicht korrekt in der Datenbank gespeichert werden (utf8_ci), wenn ich sie vorher encode oder anderswie umwandle (zB htmlentities()) habe ich die Vermutung, dass sie schon "vermurkst" ankommen.
Wie kann ich hier Abhilfe schaffen?
Ausgabe im Forum:
In der Datenbank nur durch leere Vierecke dargestellt. Aber auch diese komischen Zeichen hier über mir kann ich nicht ersetzen lassen durch str_replace(). Da verhauts mir meinen ganzen Editor bzw. die Syntax und es geht in die Hose^^
Hat irgendwer noch eine Idee was ich hier probieren könnte? Und woher diese merkwürdigen Zeichen überhaupt kommen?
Hab ja das encoding im Verdacht, nur konnte ich hier auch durch Umwandlungen (mb_convert oder so ähnlich wars) nichts erreichen Entweder er schneidet mir alles ab (s.o.) oder es kommen diese Zeichen -.-" Es ist wirklich zum verrückt werden...
Edit:
Ich sehe gerade, dass die Zeichen die ich erwähnt habe (Viereckige Kästchen mit kleinen Zahlen - 00 84 bzw. 00 93 jeweils untereinander) hier im Forum automatisch zu Anführungszeichen gewandelt werden?!
Also liegts wohl doch am encoding?! Ich werd noch irre...
Edit2:
Hab jetz mal verglichen und mein erster Verdacht hat sich bestätigt. Bei uns im Forum ist UTF-8, hier ISO-8859-1 eingestellt. Verflucht noch eins :/ Wieso funktionierte dann die Umwandlung nicht? Hab ich da nen Denkfehler? Vllt kann mich ja mal einer aufklären, ob das überhaupt geht und wenn ja wie... Denn einfaches Umstellen auf "ISO-8859-1" hat nix geholfen
NEIN, das ist nicht der x-te Thread mit "Warum geht 'str_replace(""", "", $var);' nicht?!
Handelt sich hier meiner Meinung nach um ein komplexeres Problem. Vorab sei mal gesagt, dass ich eigentlich schon ein wenig Ahnung von der Materie hab (zwar nicht professionell, aber durchaus so viel, dass ich 98% der Probleme selber lösen kann). Nachdem ich aber gestern geschlagene 5 Stunden an diesem Fall saß und mir auch heute in der Arbeit (natürlich schön übermüdet, wie halt Progger gerne mal anstrahlen ) keine Lösung einfallen wollte, gebe ich das ganze mal an euch weiter... Hoffentlich hat hier einer mehr Ideen als ich^^
Doch nun zum Problem:
Ich lese ein RSS Feed aus (liegt als XML vor). Dazu nutze ich fsockopen. Das funktioniert soweit alles, die Felder kann ich schön splitten etc., alles wunderbar, ebenso die Ausgabe - außer wenn auf einmal Anführungszeichen vorkommen. Es sind nicht die normalen doppelten Hochkommata, sondern es sind scheinbar Sonderzeichen (zB „). Das ganze sieht (gekürzt) so aus:
Code:
<?xml version="1.0" encoding="iso-8859-1"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
<content:encoded><![CDATA[ Nach Abbau der Ausstellung „Bürgermacht & Bücherpracht“ gehts weiter!]]></content:encoded>
</rss>
Da die Zeichen im Forum (wo eben dieser Content angezeigt werden soll) nicht richtig dargestellt werden, wollte ich sie einfach mit "str_replace()" ersetzen, das geht aber leider nicht. Mit "$var = str_replace("„", "", $content);" erhalte ich als Ausgabe lediglich "Nach Abbau der Ausstellung ", der Rest ist abgeschnitten. Hab auch schon versucht durch andere Zeichen zu ersetzen statt durch "nichts", gleiches Ergebnis.
Da die Anführungszeichen auch nicht korrekt in der Datenbank gespeichert werden (utf8_ci), wenn ich sie vorher encode oder anderswie umwandle (zB htmlentities()) habe ich die Vermutung, dass sie schon "vermurkst" ankommen.
Wie kann ich hier Abhilfe schaffen?
Ausgabe im Forum:
Code:
Nach Abbau der Ausstellung „Bürgermacht & Bücherpracht“ gehts weiter!
In der Datenbank nur durch leere Vierecke dargestellt. Aber auch diese komischen Zeichen hier über mir kann ich nicht ersetzen lassen durch str_replace(). Da verhauts mir meinen ganzen Editor bzw. die Syntax und es geht in die Hose^^
Hat irgendwer noch eine Idee was ich hier probieren könnte? Und woher diese merkwürdigen Zeichen überhaupt kommen?
Hab ja das encoding im Verdacht, nur konnte ich hier auch durch Umwandlungen (mb_convert oder so ähnlich wars) nichts erreichen Entweder er schneidet mir alles ab (s.o.) oder es kommen diese Zeichen -.-" Es ist wirklich zum verrückt werden...
Edit:
Ich sehe gerade, dass die Zeichen die ich erwähnt habe (Viereckige Kästchen mit kleinen Zahlen - 00 84 bzw. 00 93 jeweils untereinander) hier im Forum automatisch zu Anführungszeichen gewandelt werden?!
Also liegts wohl doch am encoding?! Ich werd noch irre...
Edit2:
Hab jetz mal verglichen und mein erster Verdacht hat sich bestätigt. Bei uns im Forum ist UTF-8, hier ISO-8859-1 eingestellt. Verflucht noch eins :/ Wieso funktionierte dann die Umwandlung nicht? Hab ich da nen Denkfehler? Vllt kann mich ja mal einer aufklären, ob das überhaupt geht und wenn ja wie... Denn einfaches Umstellen auf "ISO-8859-1" hat nix geholfen
Zuletzt bearbeitet: