lachesis: Wie finde und ersetze ich zb: [link: ....

Hallo zusammen,

sorry für die blöde Themenbeschreibung, mir ist nix besseres eingefallen.

Folgendes Problem:

Ich möchte meinen Usern die Möglichkeit geben, ihre Texte ein wenig zu formatieren. Dazu biete ich ihnen zB an ihren Text so [b:text:b] fett zu gestalten.  Dies nachher durch die entsprechende HTML-Beschreibung zu ersetzen ist ja simpel.

Jetzt würde ich ihnen gerne ermöglichen auch Links zu erstellen mit zB:

[addr:Adresse|Beschreibung:addr]

Jetzt würde ich dies auch gerne durch die korrekte HTML Schreibweise ersetzen, weiß aber nicht so genau wie.
Mit strpos kann ich Anfang und Ende der Linkbeschreibung herausfinden danach herausschneiden und bearbeiten ok... Das ist aber insgesamt recht mühsam, oder?
Und wie mach ich das, wenn mehr als ein Link eingefügt wird?

Danke für eure Tipps!

Grüßle lachesis

PS: macht es Sinn den String im Original, also mit zB: [b:.... in der Datenbank zu speicher und bei der Ausgabe umzusetzen, oder doch schon vor dem Speichern umzubauen?

--
mal wieder auf http://www.booklinks.de vorbeigeschaut? Mittlerweile mehr als 900! Bücher.
  1. hi,

    [addr:Adresse|Beschreibung:addr]

    Jetzt würde ich dies auch gerne durch die korrekte HTML Schreibweise ersetzen, weiß aber nicht so genau wie.
    Mit strpos kann ich Anfang und Ende der Linkbeschreibung herausfinden danach herausschneiden und bearbeiten ok... Das ist aber insgesamt recht mühsam, oder?
    Und wie mach ich das, wenn mehr als ein Link eingefügt wird?

    reguläre ausdrücke eignen sich dazu weitaus besser als normale string-operationen.

    such mal im </archiv/> nach der bb-code klasse von christian seiler.

    gruss,
    wahsaga

    1. Hi

      such mal im </archiv/> nach der bb-code klasse von christian seiler.

      Danke für den Tipp,
      die Klasse ist ja genial, und vor allem paßt sie perfekt auf mein Problem. Danke dafür!

      Grüßle

      Manuel

      --
      mal wieder auf http://www.booklinks.de vorbeigeschaut? Mittlerweile mehr als 900! Bücher.
      1. Hallo,

        aber ein weiteres Problem hab ich schon noch.
        Die Klasse arbeitet ja super, wenn man BB-Code in HTML Tags umzusetzen hat. Wenn man jetzt aber seine Text (inkl. Formatierung) bearbeiten will, dann steht dann ja html code im Text (Ok ich kann damit leben, aber andere User?)
        Blöd ist jetzt jedoch, daß htmlspecialchars() mir dann diese Formatierung auch noch kaputt macht.

        Wäre es jetzt nicht sinnvoller den Text mit BB-Code in der Datenbank zu speichern und erst kurz vor der Ausgabe zu ersetzen?
        Dann wäre es auch viel einfacher den Text zu editieren.
        Aber wie stelle ich sicher, daß mir kein Dummsinn in den Text geschrieben wird, der mir Probleme mit meiner Datenbank verursacht?
        (Oder kann das nicht passieren?)

        THX

        lachesis

        --
        mal wieder auf http://www.booklinks.de vorbeigeschaut? Mittlerweile mehr als 900! Bücher.
        1. hi,

          Wäre es jetzt nicht sinnvoller den Text mit BB-Code in der Datenbank zu speichern und erst kurz vor der Ausgabe zu ersetzen?
          Dann wäre es auch viel einfacher den Text zu editieren.

          ja, das kann u.U. sinnvoller sein.
          das sollte doch auch schon aus der antwort von fastix ([pref:t=71795&m=413497]) sowie den darauf erfolgten antworten von andi_b und e7 deutlich geworden sein.

          Aber wie stelle ich sicher, daß mir kein Dummsinn in den Text geschrieben wird, der mir Probleme mit meiner Datenbank verursacht?
          (Oder kann das nicht passieren?)

          für die datenbank sind nur gewisse kombinationen potentiell gefährlich, die entweder "kaputte" query-strings erzeugen, oder weiteren sql-code einschleusen.
          beides unterbindest du aber sehr zuverlässig durch das anwenden von mysql_(real_)escape_string() auf die übergebenen werte, bevor du sie in den query string einsetzt.
          (DB ist doch mysql, oder?)

          gruss,
          wahsaga

          1. Hi wahsaga,

            beides unterbindest du aber sehr zuverlässig durch das anwenden von mysql_(real_)escape_string() auf die übergebenen werte, bevor du sie in den query string einsetzt.
            (DB ist doch mysql, oder?)

            danke für Deine Antwort (auf das naheliegende "mysql_(real_)escape_string()" komm ich seltsamerweise nie!
            Ich werde mein CMSchen jetzt dementsprechend umbauen.

            Grüßle

            lach

            --
            mal wieder auf http://www.booklinks.de vorbeigeschaut? Mittlerweile mehr als 900! Bücher.
  2. Moin!

    [addr:Adresse|Beschreibung:addr]

    Jetzt würde ich dies auch gerne durch die korrekte HTML Schreibweise ersetzen, weiß aber nicht so genau wie.
    Mit strpos kann ich Anfang und Ende der Linkbeschreibung herausfinden danach herausschneiden und bearbeiten ok... Das ist aber insgesamt recht mühsam, oder?

    Ja wäre es. Informiere Dich über Regular Expressions. Die können sowas suchen und ersetzen.

    Und wie mach ich das, wenn mehr als ein Link eingefügt wird?

    Dito.

    Danke für eure Tipps!

    Bitte.

    PS: macht es Sinn den String im Original, also mit zB: [b:.... in der Datenbank zu speicher und bei der Ausgabe umzusetzen, oder doch schon vor dem Speichern umzubauen?

    Vor dem Speichern. Der Grund ist simpel: Es wird hoffentlich öfter gelesen als geschrieben.

    MFFG (Mit freundlich- friedfertigem Grinsen)

    fastix®

    --
    Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch  für seriöse Agenturen.
    1. Servus & danke für die Antwort!

      Vor dem Speichern. Der Grund ist simpel: Es wird hoffentlich öfter gelesen als geschrieben.

      Ok, das seh ich ein!

      Grüßle

      --
      mal wieder auf http://www.booklinks.de vorbeigeschaut? Mittlerweile mehr als 900! Bücher.
    2. heyho,

      Vor dem Speichern. Der Grund ist simpel: Es wird hoffentlich öfter gelesen als geschrieben.

      ich nehme an, wenn es sich um ein cm-artiges system handelt, dann siehst du das auch anders, oder? schliesslich wäre es ja sonst sehr umständlich, die vorhandenen links wieder raus zu filtern.

      and dieser stelle habe ich auch gleich noch eine frage, die gut hierher passt:
      wie würdet ihr es umsetzen, wenn es darum geht, in dem text fragen (multiple-choise) einzubauen. lohnt es sich, den ganzen code in den text einzuspeichern, oder würdet ihr ein 'question-tag' benutzen, dass dann die db separat abfragt?

      griese, andi

    3. Hi,

      PS: macht es Sinn den String im Original, also mit zB: [b:.... in der Datenbank zu speicher und bei der Ausgabe umzusetzen, oder doch schon vor dem Speichern umzubauen?
      Vor dem Speichern. Der Grund ist simpel: Es wird hoffentlich öfter gelesen als geschrieben.

      Wobei man dazu sagen muss: Ich formatiere die Ausgabe erst um, wenn der Nutzer eine Seite auch tatsächlich anfordert. Auch ein simpler Grund: Wird zu viel Mist getrieben wie [link:javascript( oder so was muss man nur die Ersetzfunktion ändern.

      E7