Mastershrimp: [URL=blabal]blabal[/URL] in HTML umwandeln

Hallo!

Ich habe ein kleines Problem bzgl. des Ersetzens von dem Forum-Tag [URL=http://www.test.de]eine Seite[/URL] in <a href="...

Das ganze spielt sich im  Rahmen eines PHP-Gästebuchs ab.

Mein Versuch war folgender:

$eintrag = str_replace("[URL=","<a href='",$eintrag);
 $eintrag = str_replace("[/URL]","</a>",$eintrag);
 $eintrag = str_replace("]","'>",$eintrag);

Das müsste eigentlich auch klappen, nur werden dann dank der 3. Zeile _sämtliche_ "]" in "'>" umgewandelt - und nicht nur das im URL-Tag.

Allerdings weiß ich jetz leider nicht, wie ich das sonst machen soll...

Könnte mir jemand einen Tipp geben?

Danke im Vorraus!

Gruß

Mastershrimp

  1. Hi Krabbeltier,

    Ich habe ein kleines Problem bzgl. des Ersetzens von dem Forum-Tag [URL=http://www.test.de]eine Seite[/URL] in <a href="...

    Könnte mir jemand einen Tipp geben?

    http://www.christian-seiler.de/projekte/php/bbcode/

    Grüße,
     Roland

    1. Hi Krabbeltier,

      :D - so hat mich noch keiner genannt ;)

      Aber auch "Hi".

      Uff. Habe mal gerade den Link überflogen - ist rel. aufwendig, oder? Zumal ich ja eigentlich nur den [URL]-Tag ändern will. Alle übrigen Tags konnte ich mit str_replace() wunderbar umformen.

      Aber ich werde mir das Ganze mal zu Gemüte führen...

      Gibt es sonst keine andere Möglichkeit? Ich bin ein PHP-Anfänger und habe noch nicht so den Überblick über die Funktionen - gibts da wirklich keine Alternative?

      Gruß

      "Krabbeltier"

  2. Hallo,

    Das ganze spielt sich im  Rahmen eines PHP-Gästebuchs ab.

    Ich als Gast haette keine Lust, eine Anleitung zu lesen, zu verstehen
    und umzusetzen, wie ich jetzt in Deinem Gaestebuch einen Link machen kann.

    Ich moechte einfach meinen Kommentar schreiben koennen,
    und wenn Du mir noch gleich eine einfache, schnell verstaendliche
    Moeglichkeit gibst, einen Link zu meiner eigenen Seite zu machen,
    dann bin ich erst recht zufrieden.

    Du kannst doch einfach zwei Formular-Felder machen:
    URL: [      ]
    Linktext (Name der Site): [      ]
    und daraus dann ganz einfach den Link bauen.
    Wenn jemand den Linktext leer laesst, kannst Du ja
    stattdessen auch die URL als Linktext nehmen.

    Eine solche Loesung waere

    • fuer Dich sehr einfach zu realisieren
    • fuer den Gast sehr einfach zu bedienen.

    Ersetzens von dem Forum-Tag [URL=http://www.test.de]eine Seite[/URL] in <a href="...
    $eintrag = str_replace("]","'>",$eintrag);

    [...] nur werden dann dank der 3. Zeile _sämtliche_ "]" in "'>" umgewandelt

    Logisch. Aber IMHO auch nicht tragisch.
    Ausser in Pseudocodes und vielleicht noch in exotischen Smilies
    verwendet doch kein Mensch eckige Klammern...

    Du koenntest Deinen - IMHO eh schon ungewoehnlichen - Pseudocode
    noch etwas komplizierter machen.
    Z.B. dass man am Ende der URL _zwei_ eckige Klammern machen muss:
    [URL=http://www.test.de]] eine Seite[/URL]
    und dann nur alle Vorkommen von "]]" durch ">" ersetzen.

    Oder ueberhaupt auf die ganze Geschichte mit dem Pseudocode verzichten.
    Und einfach saemtliche URLs automatisch in Links umwandeln.

    dclp-FAQ: Wie mache ich aus URIs im Text anklickbare Links?
    http://www.dclp-faq.de/q/q-regexp-uri-klickbar.html

    Wenn Du wirklich Pseudocode/BB-Code verwenden willst,
    empfehle ich Dir trotz allem, die Klasse von Christian zu verwenden.

    Gruesse,

    Thomas

    --
    Bitte keine Mails mit Fachfragen - dafuer gibt es das Forum!
    Ich mag es, wenn URLs verlinkt sind (</faq/#Q-19>).
    Oft gestellte PHP-Fragen beantwortet die dclp-FAQ bestens: http://www.dclp-faq.de/
    1. Ich als Gast haette keine Lust, eine Anleitung zu lesen, zu verstehen
      und umzusetzen, wie ich jetzt in Deinem Gaestebuch einen Link machen kann.

      Das ist auch nicht nötig, da ich ein kleines JavaScript geschrieben habe, was die Formatierung für dich übernimmt.
      "Gib deine URL ein:" (prompt) und "Gib einen optionalen Text ein" (auch prompt)

      Das ist also nicht das Problem. Das Problem besteht halt in der Umkonvertierung des BB-Codes in HTML.

      Ersetzens von dem Forum-Tag [URL=http://www.test.de]eine Seite[/URL] in <a href="...
      $eintrag = str_replace("]","'>",$eintrag);

      [...] nur werden dann dank der 3. Zeile _sämtliche_ "]" in "'>" umgewandelt

      Logisch. Aber IMHO auch nicht tragisch.
      Ausser in Pseudocodes und vielleicht noch in exotischen Smilies
      verwendet doch kein Mensch eckige Klammern...

      Ok. Hab ich mir auch schon gedacht...Aber man _könnte_ sie ja schon versehentlich benutzen...

      Du koenntest Deinen - IMHO eh schon ungewoehnlichen - Pseudocode
      noch etwas komplizierter machen.
      Z.B. dass man am Ende der URL _zwei_ eckige Klammern machen muss:
      [URL=http://www.test.de]] eine Seite[/URL]
      und dann nur alle Vorkommen von "]]" durch ">" ersetzen.

      Was den Nachteil hätte, dass der Forum-erfahrene User auf einmal mit dem Standart BB-Code nicht mehr weiter käme...
      Aber grundsätzlich eine Möglichkeit.

      Oder ueberhaupt auf die ganze Geschichte mit dem Pseudocode verzichten.

      Och nö. ;)

      Und einfach saemtliche URLs automatisch in Links umwandeln.

      dclp-FAQ: Wie mache ich aus URIs im Text anklickbare Links?
      http://www.dclp-faq.de/q/q-regexp-uri-klickbar.html

      Werde ich mir mal durchlesen. Ich wollte evtl. beides machen, da man ja mit dem BB-Code auch einen Link-Text einfügen kann.

      Wenn Du wirklich Pseudocode/BB-Code verwenden willst,
      empfehle ich Dir trotz allem, die Klasse von Christian zu verwenden.

      Der Haken allerdings ist, dass ich noch nicht einmal genau weiß was eine Klasse ist und wie man sie bedient...Bin halt noch ein ziemlicher Anfänger.
      Aber scheinbar führt kein Weg dran vorbei.

      Danke schonmal. Ich wühle mich dann mal durch die Codes...

      Gruß

      Mastershrimp

  3. Hallo,

    Könnte mir jemand einen Tipp geben?

    Alex weiß das: http://alex.ilosuna.org/textparser.html

    Gruß,
    _Dirk

  4. So.
    Habe jetzt mit euren Ratschlägen folgendes gebastelt:
    1. Eingegebene URL's sind anklickbar
    2. Url-Tag ist [URL=blabal]]balbla[/URL]
    3. Linktext wird durch URL ersetzt, wenn er leer ist

    Ihr könnt euch das Ganze mal unter http://www.mastershrimp.com/test/php/gaestebuch/guestbook.php ansehen.

    Bitte testet mal ein bisschen und sagt mit was euch gefällt/nicht gefällt. Das gilt auch fürs Design. Ich bin an das Dunkelgrau-Orange nur insofern gebunde, dass meine Homepage in diesen Farben ist.

    Vorschläge/Kritik/Lob/etc. werden dankend angenommen ;)

    Gruß

    Mastershrimp