Euro convert
Flo
- php
0 Cheatah0 Flo0 Henk Strobel0 Cheatah0 Flo0 Henk Strobel0 ok danke
0 Tom
Hi!
folgendes Problem:
ich schreibe über ein formular einen text in eine DB. in dem Text kommen Euro-Zeichen vor.
vor dem reinschreiben wende ich diese Funktion an:
function euro($string) {
global $str_new;
$str_new = str_replace("","â¬",$string);
return $str_new;
}
klappt aber nicht! Warum?
vielen Dank für die Mühe
Hi,
klappt aber nicht! Warum?
weil die Zeichen "&", "e", "u", "r", "o" und ";" nicht hintereinander in dem String vorkommen.
Cheatah
aber das eurozeichen kommt doch vor, das ist nur ein zeichen und dies soll durch ⬠ersetzt werden.
warum geht das so nicht?
Hallo,
weil die Zeichen "&", "e", "u", "r", "o" und ";" nicht hintereinander in dem String vorkommen.
kann es sein, das Du Dich da vertust?
Aus der Funktionsbeschreibung:
string str_replace (string needle, string str, string haystack)
In haystack (hier: $string) wird also nach needle (hier: mutmasslich ein von der Forumssoftware geschlucktes(?) EUR-Zeichen) gesucht, und dieses durch str (hier: "â¬") ersetzt.
Die Argumente wären damit schonmal in der richtigen Reihenfolge...
Gruß
Henk
Hi,
kann es sein, das Du Dich da vertust?
ja, offenbar.
In haystack (hier: $string) wird also nach needle (hier: mutmasslich ein von der Forumssoftware geschlucktes(?) EUR-Zeichen) gesucht,
Wenn es nicht geschluckt wurde, würde ein Leerstring ersetzt werden, was vermutlich undefiniert ist. Wenn nicht, ist die Problembeschreibung unvollkommen.
Cheatah
so hab ich es ja, aber es klappt nicht. In der DB steht dann nur ein ?
Hallo Flo,
Dein Problem wird wohl in irgendeiner Form mit der Zeichenkodierung zusammenhängen.
Lass Dir mal die Strings, mit denen Du arbeitest, ausgeben, vielleicht hilft Dir das schon weiter.
Wenn nicht, lass die DB raus, arbeite nur mit den Strings innerhalb eines PHP-Skriptes. wenn es dann läuft, such mal im DBServer-Manual nach Dingen wie Client-Server-Kommunikation und vor allem den dabei verwendeten Zeichensätzen (charsets).
Das Problem ist, das das EUR-Zeichen nicht zum Standard-ASCII-Zeichensatz gehört, sondern oberhalb von 128 Bit liegt. Und da wird's dann schnell kniffelig, wenn unterschiedliche Zeichensätze ins Spiel kommen.
Vielleicht kann Dir ja jemand konkret zu Deinem Problem etwas sagen...
Gruß
Henk
ok danke erstmal!!!
Hello,
ich schreibe über ein formular einen text in eine DB. in dem Text kommen Euro-Zeichen vor.
vor dem reinschreiben wende ich diese Funktion an:function euro($string) {
global $str_new;
$str_new = str_replace("","â¬",$string);
return $str_new;
}klappt aber nicht! Warum?
Warum ersetzt Du einen Leerstring durch 'â¬' ?
Wofür ist das global $str_new da, wenn die Funktion das doch ordnungsgemäß als Rückgabewert liefert?
Und wenn Du tatsächlich mal nur 'â¬' in deine Tebelle insert-est, was steht dann nach dem Select im Result?
Liebe Grüße aus http://www.braunschweig.de
Tom