Sonderzeichen in String...



  • Hallo! 😡
    Ich bin echt sauer auf diese HTML Deppen!
    Ich schaffe es einfach nicht Sonderzeichen zu machen!
    Mein Ansatz:

    $message = str_replace("&", "&", $message);
    $message = str_replace("<", "<", $message);
    $message = str_replace(">", ">", $message);
    

    Soweit alles OK...
    Doch jetzt:

    $message = str_replace("\"", """, $message);
    $message = str_replace("\'", "\\'", $message);
    

    Hier zählt nur das zweite...
    Man muss es so machen, da wenn ich ' durch \' ersetze wird das schon sofort ersetzt und es würde dasselbe bedeuten, als wenn ich:

    $message = str_replace("'", "'", $message);
    

    schreiben würde.
    Das muss man nicht bstreiten ich habe es ausprobiert.
    Und \' wird sofort in \' umgewandelt.
    Und das bei der Speicherung in der MySQL datenbank und bei der Ausgabe dann in ein ' ohne Bedutung.

    Doch jetzt kommt der härteste Brocken, überhaupt:

    $message = str_replace("\\\ ", "", $message);
    

    Ich musste das Zeichen sogar sperren!
    Denn man kann es niemals so ersetzen, dass nur ein \ rauskommt, ohne Bedeutung.
    ihr könnt es gerne mal ausprobieren.
    \\ wird sofort zu \ und wird mit Bedeutrung versehen.
    \\ macht \\ was ja auch falsch ist

    Es funktioniert einfach nicht so 😞
    Ich habe alles ausprobiert 😡
    Es funktionier echt nicht.

    Aber gibt es keinen PHP-Befehl der einen String richtig formatiert?

    Ich zeige mal was MySQL dazu sagt, wenn ich das \ zulasse...

    mysql_query("UPDATE chatscript SET TEXT = '$message'", $db);
    

    Dieser Code lässt sich rein Chatmäßig bei mir nur mit UPDATE machen...

    $message sei =
    Ein Hund ist bunt \ ja er frisst soviel \

    mysql_query("UPDATE chatscript SET TEXT = 'Ein Hund ist bunt \ ja er frisst soviel \", $db);

    Am Ende steht ein \" und das macht den ganzen PHP Code hinfällig...
    Also nochmal:
    Wie machen große Foren das?
    Oder gibt es eine PHP Funktion die das alles erledigt?
    Das einzige Problem ist wirklich die Speicherung in der DB...

    MfG MAV



  • Schau dir mal die PHP Funktion mysql_escape_string an, die könnte dir eine Menge arbeit ersparen.

    Ich weiß jetzt nicht genau, welche Strings du was übergeben willst, aber:

    \\ wird zu \
    \' wird zu '
    \' wird zu \'

    usw. \' ist nur eine andere Schreibweise für ', wenn dieses eine spezielle Bedeutung im String hat. und da \ eine spezielle Bedeutung hat (weil es einem anderen Zeichen eine andere Bedeutung gibt), muss man es so \\ schreiben. Wenn du dir den String dann aber anschaust, hast du nur ein ganz normales \ drin. Im String ist es also ganz normal gespeichert.



  • Halölo! 🙂
    Die Funktion habe ich gesucht... 🙂

    MfG MAV


Anmelden zum Antworten