Ergebnis 1 bis 2 von 2

Thema: wordwrap mit Markierung des Umbruchs

  1. #1
    Samurai Avatar von Donkey
    Registriert seit
    12.08.2008
    Ort
    München
    Alter
    35
    Beiträge
    237
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard wordwrap mit Markierung des Umbruchs

    Hallo

    wordwrap ist ja eine bekannte Funktion um nach einer bestimmten Anzahl von Zeichen einen Zeilenumbruch einzufügen.
    Ganz nützlich in kleinen Boxen wenn der Inhalt nicht über den Rand hinaus wachsen soll oder sowas.

    Ist sicher keine Funktition die man oft braucht, die ich da geschrieben hab,
    aber ich habs halt gebraucht und dachte mir ich erspar euch n Haufen Arbeit, falls ihr auch mal sowas brauchen solltet.

    Jetzt speziell in meinem Fall hab ich das zum Anzeigen von Code gebraucht.
    Das sieht dann mit wordwrap schonmal so aus:


    Die Funktion macht jetzt eigentlich nicht anderes als zu markieren was normal EINE Zeile ist, welche aber auf Grund des Platzmangel umgebrochen wurde.

    Das sieht dann so aus:



    Wie gesagt kann in bestimmten Situationen nützlich sein, wird man aber wohl nicht oft brauchen
    Sicherlich auch nicht ganz ausgereift - vielleicht habt ihr ja Verbesserungsvorschläge.

    PHP-Code:
    <?php
    function mark_wordwrap($input){
            
    $length 75;

            
    // Falls eine Zeile länger als die gewählte Anzahl Zeichen ($length) ist,
            // wird sie umgebrochen und das erste Zeichen nach dem Umbruch rot markiert,
            // um mitzuteilen dass die Zeile automatisch umgebrochen wurde
            
            // $trenner fügt Platzhalter in den String ein, welche später durch einen Zeilenumbruch ersetzt werden,
            // da \n im Prozess von $out3 verschwindet und somit nichtmehr für ein str_replace verwendet werden kann.
            // <br /> wird ebenfalls zerstört ($splitting2).
            
    $trenner str_replace("\n""\n(#TRENNER#)"$input);
            
            
    // Es wird ein Array mit den einzelnen Zeilen des Eintrags gebildet.
            
    $out3 explode("\n"$trenner);
            
            
    $count count($out3)-1;
            
    $counter 0;
            
    $check '';
            
            
    // Diese Schleifen ermitteln die Zeilenlängen, brechen diese um wenn nötig,
            // färben das erste Zeichen nach dem Umbruch ein und schreiben den Inhalt in ein neues Array.
            
    while($counter <= $count){
                if(
    strlen($out3[$counter]) > $length){
                    
    $check .= '1';
                    
    $splitting1 wordwrap($out3[$counter], $length"<br />"1);
                    
    $splitting2 explode('<br />'$splitting1);
                    
                    
    $splitting_count count($splitting2)-1;
                    
    $splitting_counter 1;
                    
                    while(
    $splitting_counter <= $splitting_count){
                        
    $first $splitting2[$splitting_counter][0];
                        
    $new_first'<br /><span class="red">'.$first.'</span>';
                        
    $new_string .= $new_first.substr($splitting2[$splitting_counter], 1);
                        if(
    $splitting_counter == 1){
                            
    $out4[] = $splitting2[0].$new_string;
                        }
                        else{
                            
    $out4[] = $new_string;
                        }
                        unset(
    $new_string);
                    
    $splitting_counter++;
                    }
                }
                else{
                    
    $out4[] = $out3[$counter]; 
                }
            
    $counter++;
            }
            
            
    // Das neue Array wird in einen String umgewandel und die Platzhalter werden durch Zeilenumbrüche ersetzt.
            
    $output[] = str_replace('(#TRENNER#)''<br />'implode($out4));
            
            
    // Mitteilung falls eine Zeile automatisch umgebrochen wurde
            
    if(!empty($check)){
                
    $output[] = '<div class="note">Der Inhalt wurde aus Darstellungsgründen<br />an den rot markierten Stellen automatisch umgebrochen!</div>';
            }

    return 
    $output;
    }
    ?>
    Anwendungs-Beispiel:
    PHP-Code:
    include('inc/mark_wordwrap.php');
    $output mark_wordwrap($codesnippsel);

    echo
    '<div class="box"><code>'.$output[0].'</code>'.$output[1].'</div>'
    Gruß, Donkey
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!


  2. #2
    Jedi Ritter Avatar von Dodo
    Registriert seit
    26.04.2008
    Ort
    Wien
    Alter
    27
    Beiträge
    3.774
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard AW: wordwrap mit Markierung des Umbruchs

    Funktioniert zwar nur gut bei nichtproportionalen Schriften, aber nette Idee
    Something big is coming. And there will be pirates and ninjas and unicorns...

Ähnliche Themen

  1. Multiple Select mehrfach Markierung aus Datenbank
    Von morrers im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 7
    Letzter Beitrag: 16.05.2008, 19:05
  2. wordwrap funzt nicht :\
    Von gelöschter User im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 8
    Letzter Beitrag: 11.01.2007, 14:09
  3. MArkierung bei Link
    Von reBourne im Forum HTML & CSS Forum
    Antworten: 3
    Letzter Beitrag: 17.10.2005, 10:11
  4. bild als link ohne link-markierung
    Von Kanzler2 im Forum HTML & CSS Forum
    Antworten: 7
    Letzter Beitrag: 06.04.2005, 23:14
  5. Markierung im iE
    Von din0815 im Forum HTML & CSS Forum
    Antworten: 3
    Letzter Beitrag: 07.12.2004, 12:25

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •