Copyrightzeichen mit regex ersetzen
Andreas
- php
Hallo!
Ich versuche das Coprightzeichen durch (c) in meinem Text zu ersetzen:
$article->text = preg_replace("/\xA9/i", "(c)", $article->text);
Das Symbol wir aber nicht ersetzt.
Was mache ich falsch?
Danke im Voraus!
Andreas
Was mache ich falsch?
warum ein regulärer ausdruck für ein einzelnes, feststehendes zeichen?
str_replace('©', '(c)', $article->text);
warum ein regulärer ausdruck für ein einzelnes, feststehendes zeichen?
str_replace('©', '(c)', $article->text);
Hm. Ich dachte, damit mach ich mich abhängig von der Zeichencodierung?
Yerf!
str_replace('©', '(c)', $article->text);
Hm. Ich dachte, damit mach ich mich abhängig von der Zeichencodierung?
Diese Abhängigkeit hast du auch bei deinem regexp. Vermutlich funktioniert der nicht, weil dein Text UTF-8 (oder eine andere Codierung, bei der das Zeichen nicht den Hexcode A9 hat) ist.
Gruß,
Harlequin
Diese Abhängigkeit hast du auch bei deinem regexp. Vermutlich funktioniert der nicht, weil dein Text UTF-8 (oder eine andere Codierung, bei der das Zeichen nicht den Hexcode A9 hat) ist.
Ich verstehe. Dann werde ich wohl noch die Zeichencodierung mit einbeziehen müssen.
Vielen Dank!
Hello,
Diese Abhängigkeit hast du auch bei deinem regexp. Vermutlich funktioniert der nicht, weil dein Text UTF-8 (oder eine andere Codierung, bei der das Zeichen nicht den Hexcode A9 hat) ist.
Ich verstehe. Dann werde ich wohl noch die Zeichencodierung mit einbeziehen müssen.
Du wirst alle möglichen Zeichenkodierungen der Zieldatei berücksichtigen müssen und eventuell auch über tolerante Behandlung nachdenken müssen.
Außerdem solltest Du unbedingt die Kodierung der PHP-Datei beachten, die die Arbeit vornehmen soll, damit nicht noch mehr Chaos entsteht.
Ein harzliches Glückauf
Tom vom Berg
Sorry, aber ich bekomme es immer noch nicht hin. Selbst ein
$article->text = str_replace('©', '(c)', $article->text);
funktioniert nicht. Das Zeichen bleibt wie es ist.
Es handelt sich um einen Artikel im CMS Joomla, den ich mit einer onPrepareContent-Funktion parse. Der Content kommt also aus einer DB, die Kollation ist utf8_general_ci.
Komisch...
Hello,
Sorry, aber ich bekomme es immer noch nicht hin. Selbst ein
$article->text = str_replace('©', '(c)', $article->text);
funktioniert nicht. Das Zeichen bleibt wie es ist.Es handelt sich um einen Artikel im CMS Joomla, den ich mit einer onPrepareContent-Funktion parse. Der Content kommt also aus einer DB, die Kollation ist utf8_general_ci.
Dann hilft nur debuggen!
Also Kontrollausgaben anfertigen aller Variablen aus demselben Script heraus mit definierter und nachvollziehbarer Kodierung, Darstellung am besten als Hexcode...
Liebe Grüße aus Syburg bei Dortmund
Tom vom Berg
Moin!
warum ein regulärer ausdruck für ein einzelnes, feststehendes zeichen?
str_replace('©', '(c)', $article->text);
Hm. Ich dachte, damit mach ich mich abhängig von der Zeichencodierung?
Du bist sowieso immer abhängig von der Zeichencodierung. Sie nicht zu beachten bzw. keinerlei Angaben zu ihr zu machen und keinen Gedanken dran zu verschwenden führt ins sichere Chaos.
- Sven Rautenberg