Zeilenumbruch bei zu langen Wörtern

Patric_Ho

Grünschnabel
Hallo

Ich habe ein Prob ich hab mir ein Gästebuch geschrieben, blos wenn einer jetzt ein sehr langes Wort eingibt ist das Problem das das Wort nach rechts raus geht und dann sieht das halt einfach dumm aus und man kann horizontal scrollen weil das Wort halt nach rechts rausgeht.
So und wüsst ich gern wie ich ein automatischen Zeilenubruch in einem Wort mache.
Gibt es da irgendwelche php funktionnen oder so?
 
Hallo,

ich schreib hier mal dazu.

Gibts sowas auch in "intelligent" ?
So a la Silbentrennung von Word oderso?
Ich meine dazu muss ja info vorhanden sein wie "Silben" aussehen oder wie auch immer das funktioniert.
Gibts da etwas gramatikalisch korrektere Trennungen bzw entpsrechende Scripte für? Oder muss ich mit "nach x - Zeichen -> Trennung" leben?

Danke

Gruß
Frank
 
Versuch das Problem mit HTML Tags in den Griff zu bekommen...
Google am besten nach "wrap", "wrap=virtual" oder "nowrap"..

Ciao,
Mike
 
Danke !
aber hilft mir so wie ich es verstanden habe nichts.
Dieses Wrap Attribut bricht auch nur planlos (d.h. nach X Zeichen) oder bei Whitespaces um
Ich will ja zusammenhaengen Wörter trennen!

Sowas wie "Zeilenum-bruchscript"
Mir ist klar, dass das nicht mit einem 3 Zeilen Script geht.
Es muss ja Information über die Gramatik der entspr. Sprache vorhanden sein.
Aber ich dachte eben: Word kann das .. Openoffice sicherlich auch.. evtl gibts diese Funktionalität dann als alleinstehendes "Modul" auch so ums zu benutzen :)

Gruß
Frank
 
Ne.. nicht das ich wüßte..
Es wird aber sicher in irgendeiner Bibliothek eine entsprechende Klasse geben...
Prinzipiell: Layout mit PHP = pfui :) (außer in gewissen Fällen).

Du hast damit gleich 2 Probleme:
1. Jedes Zeichen hat eine andere Breite... "w" benötigt mehr Platz als "i", und das noch dazu bei jeder schriftart anders
2. Die Software weiß nicht was "Silben" sind...

Also, einzige Lösung:
Entweder mit nicht ganz regelmässigen Zeilenumbrüchen leben (was eigentlich jeder macht) oder beim Erfassen der Daten mit einem WYSIWYG Editor arbeiten, der im Format genau dem Ausgabeziel entspricht...

Ciao,
Mik
 
PHP:
function wrap($msg_str)//Funktion zum Erzwingen von Zeilenumbrüchen
{
    $ende=strlen($msg_str);
    $textanfang=0;
    $temp_str='';
    $temp_lang=76;
    for($i=0,$j=0,$x=0;$i<$ende;$i++,$j++,$x++)
    {
     if($j==$temp_lang)
     {
      for(;$j!=0&&strcmp(substr($msg_str, $i, 1)," ")!=0&&strcmp(substr($msg_str, $i, 1),"\n")!=0;$j--,$i--,$x--)
      {
      }
      if($j==0)
      {
       $i+=$temp_lang;
       $x+=$temp_lang;
      }
      $temp_str=substr($temp_str,0,$x)."<br>";
      $x+=4;
      $j=0;
     }
     if(strcmp(substr($msg_str, $i, 1),"\n")==0)
     {
      $temp_str.="<br>";
      $x+=3;
      $j=0;
     }else
     {
      $temp_str.=substr($msg_str, $i, 1);
     }
    }
    return $temp_str;
}

Ist zwar saumäßig implementiert, aber das Ding entstand unter Eile.
Auf jeden Fall erledigt es seinen Job.
$temp_lang=76; ist die Anzahl der Zeichen nach denen umgebrochen werden soll

MfG

Matthias
 
Das Problem mit der Zeilenlänge ist oft diskutiert und kann letztendlich doch nicht gelöst werden ^^. Es gibt da die Schrifttypenfamilie Courier und Courier New wo die Breite der Buchstaben gleichbleibend ist, was sich natürlich negativ auf die angenehme Lesbarkeit auswirkt. Eine Funktion welche die Breite ausmisst gibt es nicht wirklic. Eventuell könnte man diese bei den einzelnen Buchstaben ausmessen, konstant hinterlegen etc. dürfte wohl ziemlich preformancelastig sein. Die Funktion habe ich nachgebaut, da meine derzeitige PHP-Version "wordwrap()" anscheinend nicht unterstützt. Leider ist es auch unverhältnissmäßig schwer meinen Provider zu erpressen nur damit er ne neuere PHP-Version installiert ^^. Zumindest tat es das nicht als ich es versuchte.

Ach ja nochwas:

WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

MfG

Matthias
 
Zuletzt bearbeitet von einem Moderator:
Zurück