Mari: Ersetzung von Zeichenkette ":-)" durch Smiley-Grafik(-URL)

Hallo Leute,

ich schreibe gerade ein Messageboard und würde gerne innerhalb der Nachricht alle Emoticons ":-)" durch eine Grafik(-URL) ersetzen.

Leider weiss ich nicht genau, wie das geht. Das Kommando ist mir schon klar. Allerdings muss ich die drei Zeichen ja direkt durch ein IMG-Tag ersetzen. Dabei kommt es aber immer zu einem internen Server-Error (der Rest des Skripts funktioniert).

Wahrscheinlich muss ich bestimmte Zeichen mittels Backslash markieren, nur welche??

Danke für Eure Hilfe!!

Euer Mari.

  1. Hi,

    darueber steht schon einiges im Archiv...

    $zeile =~ s/:-)/<img src="bla.gif">/go;
    wuerde ich jetzt sagen...

    CU
    speedy

    1. hallo speedy!

      $zeile =~ s/:-)/<img src="bla.gif">/go;
      wuerde ich jetzt sagen...

      Eigentlich reicht es Semikolon und Klammer zu maskieren. Das "-" muss nicht maskiert werden, beim ":" bin ich mir nicht sicher (und zu faul zum Testen)

      :-)

      Ausschnitt aus dem SCB:

      $body =~ s/;-)/<img src="/selfspezial/smild.gif" width="15" height="15" border="0" alt="Lacht!">/g;

      Bis danndann
      PAF (patrickausfrankfurt)

      <img src="/selfaktuell/extras/selfcomm.jpg" alt=""> http://www.atomic-eggs.com/selfspezial/guests/advguest.cgi?view

      <img src="http://www.atomic-eggs.com/selfspezial/atomicegg.gif" id="ei" alt="Atomic Eggs - die humosophische Seite" onMouseUp="window.location.href='http://www.atomic-eggs.com/'" onmouseover="if(document.all)document.all.ei.style.cursor='hand';status='http://www.atomic-eggs.com/';return true;" onmouseout="status='';return true;">

      1. Hi,

        $body =~ s/;-)/<img src="/selfspezial/smild.gif" width="15" height="15" border="0" alt="Lacht!">/g;

        auch das Semikolon muß nicht maskiert werden, und bei der nur geschlossenen Klammer bin ich mir nicht sicher - und zu faul zum Ausprobieren ;-)

        Übrigens brauchst Du auch die Anführungszeichen nicht zu maskieren; und die Slashes ebenfalls nicht, wenn Du sie nicht zufällig als Separator benutzt:

        s!;-)!<img src="/images/smiley.gif" alt=";-)">!g;

        Zum Ursprungsposting:
        Wie oft um alles in der Welt muß man hier denn noch erzählen, daß Du bei einem Fehler als erstes das Script mit perl -c testest (der w-Switch steht selbstverständlich eh in der Shebang) und im Error-Log des Servers nachguckst?! Ohne den relevanten (und nur(!) den) Code kann man auch keine Fehlersuche durchführen. Ich hab allmählich echt keinen Bock mehr, ständig das selbe erzählen zu müssen - ist es denn sooo schwer, erst mal in einer Quelle zu lesen, bevor man fragt?

        Die Archiv-Suche ist nun wirklich nicht gerade unauffällig.

        Cheatah, geringfügig[tm] genervt

      2. » $zeile =~ s/:-)/<img src="bla.gif">/go;

        Moin! Nur eine kurze Frage: was bedeutet  ^ dieses o??

        (Nur falls jemand Zeit hat, ich weis dass das bestimmt irgentwo on den Manpages zu finden ist, hatte ich aber bisher noch nie gesehen ...oder vielleicht nicht drauf geachtet oder so...)

        :o)

        1. Hi,

          Moin! Nur eine kurze Frage: was bedeutet  ^ dieses o??

          Das bedeutet, dass Perl das Suchmuster nur einmal uebersetzt (oder rendert oder wie das heisst) und somit beim Durchlauf in einer Schleife, wo das Suchmuster sehr oft benoetigt wird, Zeit gespart wird.

          Viele Gruesse
          speedy

          1. Moin! Nur eine kurze Frage: was bedeutet  ^ dieses o??
            Das bedeutet, dass Perl das Suchmuster nur einmal uebersetzt (oder rendert oder wie das heisst) und somit beim Durchlauf in einer Schleife, wo das Suchmuster sehr oft benoetigt wird, Zeit gespart wird.

            Danke speedy!!
            :o)