Avatar billede luke2009 Nybegynder
13. marts 2010 - 19:36 Der er 4 kommentarer og
1 løsning

Begræns til antal tegn per linie

Hej

Jeg får udskrevet nogle tekstlinier fra database. Disse er nogle gange for lange til mit layout. Der må kun være omtrent 20 bogstaver på en linie. Linien skal knækkes og fortsættes på næste linie. Men da det ser dumt ud hvis en linie knækkes midt i et ord. Der må altså kun knækkes ved et mellemrum.

Jeg har søgt og søgt men ikke rigtigt kunnet finde noget der lige nøjagtigt gør det jeg ønsker. Enten knækker de bare linien over eller også begrænses til bestemt antal hele ord.

Kan nogen her hjælpe med en funktion til dette formål?
Avatar billede intenz Novice
13. marts 2010 - 20:22 #1
Uden at have testet det, vil jeg tro at sådan en funktion her ville kunne løse det:

<?php
function textWrap($text, $maxLetters) {
  $words = explode(" ", $text);
  $string = "";
  $thisLength = 0;
  for($i=0; $i<$words; $i++) {
    $wordLength = strlen($words[$i]);
    if (($thisLength+$wordLength)>$maxLetters) {
      $thisLength = 0;
      $string .= "<br />";
    }
 
    $string .= ($thisLength==0) ? $words[$i] : " ".$words[$i];
    $thisLength += $wordLength;
  }
  return $string;
}

$text = "Her er min lange lange lange lange lange tekst";
$maxLetters = 20;

print textWrap($text, $maxLetters);
?>
Avatar billede thb Nybegynder
13. marts 2010 - 22:03 #2
Hvis du bare skal have brudt linien er det så ikke bare at lade html'en klare det, sæt en bredde på elementet uden om.

Eller er det mig der misforstår spørgsmålet ?
Avatar billede Slettet bruger
14. marts 2010 - 00:54 #3
Prøv at tage et kig på PHP funktionen wordwrap
Avatar billede luke2009 Nybegynder
14. marts 2010 - 01:03 #4
roxki: det er jo en fed funktion, tak.
Læg da et svar.
Avatar billede Slettet bruger
14. marts 2010 - 01:06 #5
Jamen det var da så lidt, så her får du et svar :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester