Stephan: Ersetzen

Hallo,

ich habe eine Frage:

Ich bastle mir gerade ein Gästebuch. nun möchte ich, dass http:// www. mail: :) :( :D usw. durch Grafiken bzw. Links ersetzt werden. Wie kann ich das machen?

Danke schon jetzt

Stephan

  1. Hello,

    Ich bastle mir gerade ein Gästebuch. nun möchte ich, dass http:// www. mail: :) :( :D usw. durch Grafiken bzw. Links ersetzt werden. Wie kann ich das machen?

    Wie gelangen diese Informationen denn in das Script? In einem separaten Feld (Parameter) oder mitten im Langtext?

    Grüße

    Tom

    1. Hallo,

      die Smilies habe ich in einem Separatem Fenster, wenn man auf einen klickt, soll in dem Textfeld der entsprechende Code kommen (geht ja mit JS, nur wie). Dann soll das PHP Script das in das Bild verändern.
      Links werden ja direkt eingegeben, da kann man doch auch bestimmt ein <a href machen.

      Falls es wichtig ist: Das alles wird in einer MySQL Tabelle gespeichert...

      Danke schon jetzt

      Stephan

      1. Hello Stephan,

        ich muss zugeben, ich versteh nur "Bahnhof".

        Bechreib doch mal gaaanz langsam von vorne, was da passiert.

        1. Der User ruft eine Site auf. Die heißt ...
           und enthält folgende Elemente ...
        2. Der User clickt in dieser Site auf ....
           es soll nun das ..... passieren.

        Und mal's bitte in bisschen bunt an für mich. Ich bin (war) blond ;-))

        Grüße

        Tom

        1. Hallo,

          das geht wahrscheinlich so:

          $text = ABFRAGE AUS DEINER TABELLE

          $text = str_replace(":)"<img src="bild1.gif">", $text);
          $text = str_replace(":("<img src="bild2.gif">", $text);
          $text = str_replace(":D"<img src="bild3.gif">", $text);

          echo $text

          und immer so weiter.

          MFG
          Andavos

          --
          http://www.rpgcommunity.de/clanwissen/index.php Webdesign, PHP, Clan-Aufbau und mehr
          1. Super, Danke!

            1. Hallo,
              natürlich muss das so aussehen:

              $text = ABFRAGE AUS DEINER TABELLE

              $text = str_replace(":)", "<img src="bild1.gif">", $text);
              $text = str_replace(":(", "<img src="bild2.gif">", $text);
              $text = str_replace(":D", "<img src="bild3.gif">", $text);

              echo $text

              MFG
              Andavos

              --
              http://www.rpgcommunity.de/clanwissen/index.php Webdesign, PHP, Clan-Aufbau und mehr
          2. Hello,

            $text = str_replace(":)"<img src="bild1.gif">", $text);
            $text = str_replace(":("<img src="bild2.gif">", $text);
            $text = str_replace(":D"<img src="bild3.gif">", $text);

            Jetzt versteht auch der Blonde, was Stephan wollte...*gg*

            Da kann man dann auch die Array-Methode von str_replace benutzen:

            $smily[]=":)";
            $smily[]=":(";
            $smily[]=":D";

            $img[]="<img src="bild1.gif">";
            $img[]="<img src="bild2.gif">";
            $img[]="<img src="bild3.gif">";

            $text = str_replace($smily, $img, $text);

            Und fertig ists.

            Grüße

            Tom

        2. Hallo,

          also, ich habe eine Seite schreiben.php. In der ist Name, E-Mail, Homepage und das textfeld zum Schreiben. In dem Textfeld kann der User ja nun schreiben http://www.sonstwas.de. Das will ich jetzt in einen Link umwandeln.
          Ausserdem soll der User Smilies einfügen können. Diese sind dass durch Zeichen abgekürzt, z.B. :) ist dann der Lachsmilie.

          Jetzt meine Frage zu dem Smilie:

          Soll ich das in der Lesen-Seite zu einem Bild umwandeln oder direkt beim Übertragen in die SqL-Tabelle?

          Danke scon jetzt

          Stephan

          1. Hello,

            also, ich habe eine Seite schreiben.php. In der ist Name, E-Mail, Homepage und das textfeld zum Schreiben. In dem Textfeld kann der User ja nun schreiben http://www.sonstwas.de. Das will ich jetzt in einen Link umwandeln.

            Da wirst Du Dich mit preg_match_all() oder den anderen Funktionen für Reguläre Ausdrücke herumplagen müssen.

            Ausserdem soll der User Smilies einfügen können. Diese sind dass durch Zeichen abgekürzt, z.B. :) ist dann der Lachsmilie.

            Jetzt meine Frage zu dem Smilie:

            Soll ich das in der Lesen-Seite zu einem Bild umwandeln oder direkt beim Übertragen in die SqL-Tabelle?

            Das ist Philosophie.

            Da der User aber ggf. an seinem ORIGINALTEXT später noch etwas ändrn möchte, würde ich auch den ORIGINALTEXT in der Tabelle speichern, und ihn erst für die normale Ausgabe umrechnen. Für die Ausgabe im Formular (zur Änderung) muss er dann nur mit htmlentities() behandelt werden.

            Grüße

            Tom

  2. Hallo Stephan,

    Ich bastle mir gerade ein Gästebuch. nun möchte ich, dass http:// www. mail: :) :( :D usw. durch Grafiken bzw. Links ersetzt werden. Wie kann ich das machen?

    die Smileys einfach mit str_replace() durch ein '<img src="..." alt="...">' ersetzen, bei den Links kommt es darauf an, ob die "markiert" werden (z.B. so wie hier im Forum mit <...>) oder ob sie einfach nur im Text stehen - wenn letzteres der Fall ist schau dir mal http://www.dclp-faq.de/q/q-regexp-uri-klickbar.html an, bei ersterem http://www.christian-seiler.de/projekte/php/bbcode/.

    Grüße aus Nürnberg
    Tobias

    --
    Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
    1. Genau so, klasse, Danke!

  3. Hallo Stephan,

    Ich bastle mir gerade ein Gästebuch. nun möchte ich, dass http:// www. mail: :) :( :D usw. durch Grafiken bzw. Links ersetzt werden. Wie kann ich das machen?

    Bei Smily-Ersetzungen hat sich IMHO folgende Regexp bewährt:

    /(?<!\w)SMILY(?!\w)/

    Wichtig hierbei ist, dass das Smily escaped wird. Folgende Funktion kann als Grundlage dienen:

    function replace_smilies ($text, $smilies) {
      $searches = array ();
      $replaces = array ();
      foreach ($smilies as $search => $replace) {
        $searches[] = '/(?<!\w)'.preg_quote (htmlspecialchars ($search), '/').'(?!\w)/';
        $replaces[] = '<img src="'.htmlspecialchars($replace).'" alt="'.htmlspecialchars($search).'" title="">';
      }
      return preg_replace ($searches, $replaces, $text);
    }

    $text = ABFRAGE AUS DATENBANK
    $text = replace_smilies ($text, array (';)' => 'ironie.png', ':)' => 'freu.png'));

    Viele Grüße,
    Christian