String mit "$" Zeichen

  • Hi,

    Ich habe auf meiner MySQL DB in der Tabelle players ein Feld NickName. Dort drin haben die meisten NickName's "$"-Zeichen im Namen wie z.B. : $070[GS]$w$00FShrek. Diese Zeichenketten (z.B. $070) stehen für Farben und Text Codes. Jetzt will ich diese NickNames mit PHP auslesen und dann ausgeben. Dies klappt auch wunderbar. Aber jetzt kommt dazu, dass ich diese NickNames in einer Funktion ausgebe, die diese Codes auch auswertet. Leider funktioniert dies nur teilweise, weil z.B. $F00 von PHP als Variable angesehen wird. Jetzt ist meine Frage, wie ich dies umgehen kann (z.B. $ in £ umwandeln). Mit str_replace("$", "£", $str) funktioniert dies nicht, also muss man da wahrscheinlich schon bei der MySQL-Abfrage was machen. Könnt ihr mir helfen wie ich das realisieren kann?
    Danke für eine Antwort.

    Gruss Shrek

  • Man müsste doch eigentlich $F00 auch escapen können. Etwa so: \$F00. Dann wird es nicht mehr als Variable sondern als String angesehen.

    Es gibt zwei Regeln fuer Erfolg im Leben:
    1. Erzaehle den Leuten nie alles, was Du weisst ...

  • Und wie kann man das dann escapen? Habs auch schon versucht mit der str_replace() die $ in \$ umzuwandeln, aber ohne erfolg...
    Gibt es da irgendeine Funktion, die mir das machen kann?

  • Wir Verstehen uns wahrscheinlich noch nicht ganz. Ich erklär hier mal ausfürhlich, wie ich das meine.

    Um in einem String "$070[GS]$w$00FShrek" das "$070" gegen "xyz" zu tauschen wendet man folgenden Code an:

    Code
    str_replace ("\$070,"xyz",$gegebener_String);

    Es gibt zwei Regeln fuer Erfolg im Leben:
    1. Erzaehle den Leuten nie alles, was Du weisst ...

  • Ach jetzt begreif ichs langsam ;)
    Vielen Dank. Jetzt habe ich allerdings noch ne Frage:
    Da es von den codes ja von $000 bis $FFF alles gibt wäre es ja viel zu mühsam für jeden einzelnen einen str_replace() zu machen. Gibt es da irgendeinen "Platzhalter" oder ähnlich, der mir mit dem ich folgendes machen könnte:
    str_replace("\$[zahl 1][zahl 2][zahl 3]", "</SPAN><SPAN style='color:#[zahl 1][zahl 2][zahl 3]'>", $str)
    Oder wie könnte man das sonst noch lösen?
    Mein Ziel ist es ja aus z.B. $070[GS]$00FShrek [GS]Shrek zu machen.

    Mfg Shrek[/i]

  • Ich hab da nochmal etwas bei mir aus meinen alten Testscripts ausgekramt und habe es noch etwas angepasst. Das dürfte eigentlich die $'s bei dir ersetzen können.

    Es gibt zwei Regeln fuer Erfolg im Leben:
    1. Erzaehle den Leuten nie alles, was Du weisst ...

  • Danke vielmal ;) Begreife dieses Script jetzt recht gut und es funktioniert eigentlich auch. Nur habe ich leider noch immer das Problem, dass alles als Variable interpretiert wird. Hier mal mein Code:

    Ein Namen wie "$070[GS]$w$00FShrek" funktioniert perfekt, aber sobald es z.B. "$070[GS]$F00Shrek" ist wird das Shrek einfach abgeschnitten und es gibt [GS] alleine aus. Ich habe keine Ahnung warum das mit dem escapen irgendwie nicht funktioniert. Hat echt jemand eine Ahnung warum das so ist?

    Mfg Shrek

  • Also bei mir Funktioniert alles,
    echo tmncolor("\$070[GS]\$w\$00FShrek");
    echo tmncolor("$070[GS]$w$00FShrek");
    echo tmncolor("\$070[GS]\$00FShrek");
    echo tmncolor("$070[GS]$00FShrek");
    geben bei mir alle [GS]Shrek aus.

    Es gibt zwei Regeln fuer Erfolg im Leben:
    1. Erzaehle den Leuten nie alles, was Du weisst ...

  • ja so geht es eben schon... aber wenn man tmncolor($070[GS]$F00Shrek) eingibt, wird Shrek einfach abgeschnitten, da $F00 als Variable interpretiert wird. Aber eigentlich sollte dies ja mit dem escapen gehen, aber scheinbar nicht. Sry ich bin ratlos.

  • sry ich meinte vorher schon tmncolor("$070[GS]$F00Shrek") mit den "-Zeichen, also an dem liegts nicht. Ich wäre also wirklich dankbar, wenn mir jemand auf die Sprünge helfen könnte.