tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
699
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    KICK KICK ist offline Mitglied Silber
    Registriert seit
    Aug 2003
    Beiträge
    73
    Hi,

    ich versuche gerade ein kleines Pinboard zu programmieren das auch BB Codes verwendet.

    Wenn ein User einen neuen Beitrag absendet wird zuerst Html gefiltert und anschließend der BB Code (oder VB Code wie immer man es auch nennen will) durch den entsprechenden Html Tag ersetzt.

    Im Prinzip alles kein Problem, doch jetzt will ich zu lange Wörter natürlich umbrechen um das Design der Page zu "schützen". Dieses verusche ich nun folgendermaßen zu realisieren:

    PHP-Code:
    <?

    //NACHRICHT
    $message ="Hallo Hallo

    Text Text Text EinWortDasVielZuLangeIstUndDeshalbUmgebrichenWerdenMUss

    und so weiter"
    ;


    //Wie lange bzw. wieviele zeichen darf ein Wort maximal sein?
    $maxwordlength ="10";

      foreach(
    explode(" ",str_replace("\n"," ",$message)) as $word)
      {
        if (
    strlen($word)>$maxwordlength)
        {

        
    // Originalwort
        
    $originalword "$word";
        
    //Wort wird umgebrochen
        
    $word_mit_umbruch wordwrap($word$maxwordlength"<br>"1);
        
    // Originalwort mit umgebrochenem Wort in Nachricht ersetzen
        
    $message ereg_replace("$originalword","$word_mit_umbruch",$message);

        }
      }

    //Zeilenumbruch erstellen
    $message nl2br($message);

    //Ausgabe
    echo "Nachricht:<br><br>$message";
    ?>
    So weit so gut, jetzt aber zum eigentlichen Problem, dass mir jetzt schon seit fast einer Woche Kopfschmerzen bereitet. Wenn der Text jetzt nämlich BB Code enthält zählt die wordwrap funktion natürlich auch diese Zeichen mit und bricht mir dann z.B. mitten im BB Code einen link um etc..

    Ich habs mittlerweile schon auf hunderte Arten probiert bin aber bis jetzt noch zu keinem Ergebniss gekommen wie ich das Script daszu bringe nur den eigentlichen Text zwischen den BB Codes zu kürzen bzw. umzubrechen.

    Hat da irgendjemand eine Idee wie sowas zu realisieren wäre, bin mit meinem Wissen nämlich am Ende

    Übrigens hier im Forum werden zu lange Wörter auch umgebrochen hab ich gesehen, viell. kann mir ja der Board Admin da auch weiterhelfen

    GreetZ KICK
     

  2. #2
    Registriert seit
    Aug 2002
    Ort
    Passau / Bayern
    Beiträge
    344
    Tja, Du musst im Grunde jedes Wort auf BB-Codes prüfen und wenn es welche enthält die keinen Zeilenumbruch vertragen, dann darfst Du das Wort ganz einfach nicht "brechen". Macht dieses Board übrigens meines Wissens nach auch. URL-Tags werden mittels JavaScript gekürzt, der CODE-Tag z.B. bleibt aber ganz ungebrochen, wenn ich mich jetzt nicht täusche.

    Eine kleine Anmerkung an Dein Skript hätte ich noch. Ich würde kein ereg_replace verwenden um das alte gegen das neue Wort auszutauschen, wenn Du vorher ohnehin explode verwendest.

    Mein Tipp also:
    Speichere die Daten des explode in einem Array, parse anschließend das Array mittels einer for-Schleife oder eines foreach und tausche die Wörter nun mittels des Array-Indexes aus. Ist in dem Fall sicheriger und schneller.
     
    Das Leben ist sch**ße ... aber die Grafik ist geil!

Ähnliche Themen

  1. Dyn. String kürzen - aber wie?
    Von Dustin84 im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 09.08.10, 13:56
  2. Antworten: 4
    Letzter Beitrag: 13.12.06, 21:43
  3. String umbrechen
    Von drlenny im Forum Javascript & Ajax
    Antworten: 3
    Letzter Beitrag: 21.01.04, 17:02
  4. Antworten: 4
    Letzter Beitrag: 02.08.03, 12:57
  5. umbrechen
    Von Willy im Forum PHP
    Antworten: 3
    Letzter Beitrag: 13.04.02, 11:23