Hallo,
weiß jemand von Euch zufällig wie ich via PHP folgende Zeichen in einem Posting entfernen kann:
und
Die Zeichen entstehen beim Einlesen von Newsfeeds in ein Forum. Eigentlich sollten dort "Smart Quotes" entstehen, also schräge Anführungszeichen unten und oben.
Stattdessen erhalte ich die o.a. Symbole im Browser. Direkt von einer Shell aus mittels vi oder type eingelesen, steht dort <84> bzw. <93>
Der Feed ist als iso-8859-1-encoded angegeben. Wenn ich das richtig sehe, enthält iso-8859-1 nicht die beiden schrägen Anführungszeichen „ und “
Ich habe schon alles mögliche an Ersetzungsvarianten auf PHP-Basis durchexerziert und bisher keinen Erfolg.
Hat jemand von Euch eine Idee?
Nette Grüße
testit
Problem mit schrägen Anführungszeichen in Postings
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
- DeepSurfer
- Mitglied
- Beiträge: 1337
- Registriert: 23.01.2009 10:26
Re: Problem mit schrägen Anführungszeichen in Postings
Die feed.php von phpBB ist in UTF-8 Codiert, daher die frage von wo bzw. welchen Feed liest Du ein und wie lässt du den Feed in Dein Forum einlesen zum anzeigen ? (Es geht um das Konstrukt)
wie einst der MCP aus Tron auf dem Bildschirm zu schreiben pflegte.
- end of communication -
greets
- end of communication -
greets
Re: Problem mit schrägen Anführungszeichen in Postings
Hallo,
es handelt sich um einen externen Feed, der über SmiX.MODs Feed News Center v0.3.4 eingelesen wird (via curl).
Es funktionieren ausschließlich die beiden genannten Zeichen nicht.
Wenn ich das richtig sehe, handelt es sich um eine Multibytesequenz, die einfach nicht in den iso-8859-1-codierten Feed hineingehört und daher bei Einlesen und späteren submit_post (API) zu dem beschriebenen Phänomen führt.
Ich brauche folglich eine PHP-Funktion, die mir die entsprechenden (offensichtlichen UTF) Bytesequenzen löscht oder ersetzt durch bspw. normale Anführungszeichen oben.
Nette Grüße
testit
es handelt sich um einen externen Feed, der über SmiX.MODs Feed News Center v0.3.4 eingelesen wird (via curl).
Es funktionieren ausschließlich die beiden genannten Zeichen nicht.
Wenn ich das richtig sehe, handelt es sich um eine Multibytesequenz, die einfach nicht in den iso-8859-1-codierten Feed hineingehört und daher bei Einlesen und späteren submit_post (API) zu dem beschriebenen Phänomen führt.
Ich brauche folglich eine PHP-Funktion, die mir die entsprechenden (offensichtlichen UTF) Bytesequenzen löscht oder ersetzt durch bspw. normale Anführungszeichen oben.
Nette Grüße
testit
Re: Problem mit schrägen Anführungszeichen in Postings
Wenn du die Bytefolgen der betroffenen Zeichen kennst, solltest du diese mit "\x00" und str_replace ersetzen können. Beispiel für ein Zeichen, welches als Bytefolge 3f e6 abgebildet wird:
Code: Alles auswählen
$input = ...;
$output = str_replace("\x3f\xe6", 'ersatz', $input);
KB:knigge
Re: Problem mit schrägen Anführungszeichen in Postings
Hallo Pyramide,
genau DAS war es, was ich suchte aber -warum auch immer- nicht fand.
Das eigentliche Problem an der Sache war ja "einfach" nur, die Sonderzeichen nicht, wie i.d.R. üblich, einfach DIREKT angeben zu können.
Bspw. hatte ich es auch schon erfolglos mit folgendem Konstrukt versucht:
Funktionierte ebenfalls nicht!
Auch die mb_convert_encoding-Funktion brachte keinen Erfolg!
Herzlichen Dank nochmals und einen schönen Sonntag!
testit
genau DAS war es, was ich suchte aber -warum auch immer- nicht fand.
Das eigentliche Problem an der Sache war ja "einfach" nur, die Sonderzeichen nicht, wie i.d.R. üblich, einfach DIREKT angeben zu können.
Bspw. hatte ich es auch schon erfolglos mit folgendem Konstrukt versucht:
Code: Alles auswählen
$pattern ='/[\x{C284}-\x{C294}]+/u';
$subject=preg_replace($pattern," ",$subject);
Auch die mb_convert_encoding-Funktion brachte keinen Erfolg!
Herzlichen Dank nochmals und einen schönen Sonntag!
testit