Problem mit str_replace()
OLZU
- php
Hallo zusammen.
Ich denke mal, ich hab' einfach ein riesiges Brett vor'm Kopf,
aber ich kann's mir einfach nicht erklären...
Es geht um die Funktion str_replace(), zu der ich bei PHP.net folgendes finde:
"Diese Funktion ersetzt alle Vorkommen von search innerhalb der Zeichenkette
subject durch den String replace."
Bei mir klappt das aber nicht.
Ich habe z.B. folgenden String: $string = "den Text ändern";
Diesen String will ich bearbeiten mit
$string = str_replace("ä","ä",$string);
Ich würde diese Ausgabe erwarten : "den Text "ändern".
Wenn ich mir allerdings den von PHP generierten Quelltext ansehe, muss ich
feststellen, dass keine Änderung am String vorgenommen wurde...
Statt 'ä' steht immer noch ein 'ä' im Quellcode.
Was mache ich denn falsch?
Vielen Dank für euere Hilfe.
Gruss aus Oberfranken
OLZU
Ich habe z.B. folgenden String: $string = "den Text ändern";
Diesen String will ich bearbeiten mit
$string = str_replace("ä","ä",$string);
Ich würde diese Ausgabe erwarten : "den Text "ändern".Wenn ich mir allerdings den von PHP generierten Quelltext ansehe, muss ich feststellen, dass keine Änderung am String vorgenommen wurde...
Ich würde mal sagen, Du solltest Deinen Code für eine Problembeschreibung nicht so sehr verhungern lassen, daß nur noch die eine, offenbar (wie Du ja selbst schon bemerkt hast) vollkommen korrekte Zeile vorhanden ist - böse Fehler stecken schließlich meistens nicht dort, wo man sie vermutet ;)
Gruß,
soenk.e
Hallo OLZU,
$string = "den Text ändern";
$string = str_replace("ä","ä",$string);
Ich würde diese Ausgabe erwarten : "den Text "ändern".
mhh... bei mir funktioniert es so - kann man sich das vielleicht irgendwo anschauen (oder evtl. genauer Code (aus deinem Script rauskopiert))?
hast du vielleicht irgendwo falsche Variablen genommen (und dann die unbearbeitete weiterverwendet)?
Statt 'ä' steht immer noch ein 'ä' im Quellcode.
das "ä" steht wirklich im Quellcode (und nicht in dem was der Browser anzeigt), oder?
Grüße aus Nürnberg
Tobias
Hallo Tobias,
mhh... bei mir funktioniert es so - kann man sich das vielleicht irgendwo anschauen (oder evtl. genauer Code (aus deinem Script rauskopiert))?
hast du vielleicht irgendwo falsche Variablen genommen (und dann die unbearbeitete weiterverwendet)?
Der Code ist aus einem umfangreichen Gästebuch-Script, das ich hier eigentlich
nicht komplett posten möchte...
Den String, den ich bearbeiten möchte, kommt aus einem Forumlar (per POST) und
wird vorher nicht verändert.
Wirklich komisch finde ich, dass die Funktion eigentlich funktioniert.
Es gibt nur dann Probleme, wenn ich Sonderzeichen (z.B. ä, ö, ü, ß) umwandeln will.
Das wiederum klappt dann aber nicht mal mit htmlentities().
Im Quelltext (wirklich im Quelltext!) stehen eben nicht die entsprechenden Entities.
Ich bin am verzweifeln!
Gruss
olli
Hallo OLZU,
Der Code ist aus einem umfangreichen Gästebuch-Script, das ich hier eigentlich
nicht komplett posten möchte...
du brauchst ja auch nicht den ganzen Code posten, du kannst a) den Code online stellen oder b) den relevanten Teil posten.
Den String, den ich bearbeiten möchte, kommt aus einem Forumlar (per POST) und
wird vorher nicht verändert.
ich habe damit gemeint, dass du z.B. sowas produziert hast
$string = $_POST['irgendwas'];
$string1 = str_replace("ä","ä",$string);
echo $string;
war ja nur ein Versuch :-)
Im Quelltext (wirklich im Quelltext!) stehen eben nicht die entsprechenden Entities.
habe ich mir schon gedacht, wollte nur nochmal sichergehen.
Ich bin am verzweifeln!
Ohne Quelltext kann ich dir auch nicht helfen...
Grüße aus Nürnberg
Tobias
Nochmals hallo.
Heute ist absolut nicht mein Tag!
Aber wer kann schon ahnen, dass Firebird einen falschen Quellcode anzeigt!
Wählt man aus dem Kontextmenü den Punkt "View Selection Source" werden die Umlaute angezeigt.
Geht man hingegen auf "View" -> "Page Source" sieht man die Entities.
Die Funktion hat also schon von Anfang an richtig funktioniert.
Und dieser Bug (?) hat mich jetzt ein paar Stunden meines Lebens gekostet... ;-)
Ich bedanke mich bei euch (Tobias & Sönke) für euere Bemühungen.
Einen schönen Abend noch
OLZU
Aber wer kann schon ahnen, dass Firebird einen falschen Quellcode anzeigt!
Wählt man aus dem Kontextmenü den Punkt "View Selection Source" werden die Umlaute angezeigt.
Geht man hingegen auf "View" -> "Page Source" sieht man die Entities.
Ich hatte zwar gesagt, daß der Fehler ganz woanders liegt, aber daß es dann ganz so ganz sein sollte.. "Soviel zum Thema Schweinefehla." ;)
soenk.e