jimbob: entfernen von (") durch (')

hallo,

ich habe ein problem!
aus werbezwecken möchte ich gerne HTML-Tags an meine banner rotation weitergeben.
diese tags zerstören jedoch mein php skript da die vorkommenden " den string beenden!
wie kann man dies verhindern? geht dies überhaupt?

BSP:
$banner->addBanner("<A HREF="link"><IMG SRC="bild"></A>");

THX jimbob

  1. Grüße,

    du könntest aus dem string alle " durch ' ersetzen.

    Das geht z.b. mit str_replace()

    wie?

    str_replace("diese(s) zeichen","damit ersetzen","<A HREF="link"><IMG SRC="bild"></A>");

    oder halt

    str_replace("diese(s) zeichen","damit ersetzen",$banner);

    warum $banner -> ....

    Tschü

  2. Moin!

    BSP:
    $banner->addBanner("<A HREF="link"><IMG SRC="bild"></A>");

    $banner->addBanner("<A HREF="link"><IMG SRC="bild"></A>");
    $banner->addBanner('<A HREF="link"><IMG SRC="bild"></A>');
    $banner->addBanner("<A HREF='link'><IMG SRC='bild'></A>");
    $banner->addBanner('<A HREF='link'><IMG SRC='bild'></A>');

    Mehr Möglichkeiten gibts nicht, aber alle funktionieren.

    - Sven Rautenberg

    1. Verdammt,

      er hat wieder einmal recht. Bei meiner Version, hättest du die es so machen müssen:

      $banner->addBanner('"'.str_replace('"',"'",'<A HREF="link"><IMG SRC="bild"></A>').'"');

      kann es gerade nicht testen, sollte aber auch gehen.

      Vielleicht magicquotes (oder wie das heißt) einschalten.

      Naja, aber die anderen 4 sind einfacher. :-)

      1. Moin!

        er hat wieder einmal recht. Bei meiner Version, hättest du die es so machen müssen:

        $banner->addBanner('"'.str_replace('"',"'",'<A HREF="link"><IMG SRC="bild"></A>').'"');

        Deine Version gibt doppelte Anführungsstriche aus, die im Original nicht drin waren!

        kann es gerade nicht testen, sollte aber auch gehen.

        Nein, es geht zwar, ist aber nicht identisch.

        Vielleicht magicquotes (oder wie das heißt) einschalten.

        Ganz kalt!

        - Sven Rautenberg

        1. Moin!

          er hat wieder einmal recht. Bei meiner Version, hättest du die es so machen müssen:

          $banner->addBanner('"'.str_replace('"',"'",'<A HREF="link"><IMG SRC="bild"></A>').'"');

          dnake für die antworten. ich dachte nur ich kann dies automatisieren, da ich nicht die strings ändern wollte.
          abe reinfach einfache anführunszeichen zu verwenden ist sicher die beste methode!
          danke!

          1. Moin!

            dnake für die antworten. ich dachte nur ich kann dies automatisieren, da ich nicht die strings ändern wollte.

            Wenn deine Strings so, wie du im Beispiel angegeben hast, im Code drinstehen, mußt du irgendwas ändern. Entweder die doppelten Anführungszeichen außenrum in einfache wandeln (das sind je Zeile dann 2 Stück, aber das hat Auswirkungen auf die Variablenevaluation im String).

            Oder alle doppelten Anführungszeichen im String in " umschreiben. Denn sonst funktioniert dein jetziges Skript nicht.

            Oder eine der anderen zwei Methoden.

            Wenn dein Text aber in irgendeiner Weise z.B. aus Textdateien ausgelesen und in die Variable (bzw. die Methode) geschrieben wird, dann sind die Anführungszeichen vollkommen egal.

            - Sven Rautenberg

          2. Morgän,

            dnake für die antworten. ich dachte nur ich kann dies automatisieren, da ich nicht die strings ändern wollte.

            bei: '"'.str_replace('"',"'",'<A HREF="link"><IMG SRC="bild"></A>').'"'
            es kommt genau das raus: "<a HREF='link'><img SRC='bild'></a>"

            genau das was du wolltest. Ob nun " oder ' davorsteht, sollte egal sein kannst du ja aber auch ändern, bei mir gehen beide versionen.

            abe reinfach einfache anführunszeichen zu verwenden ist sicher die beste methode!

            Kommt drauf an wieviel arbeit du damit hast. Stehen die links in einer Datenbank? Wenn ja, wie?

            Egal.

            Tschü