Avatar billede mrfunder Nybegynder
04. juli 2008 - 21:18 Der er 5 kommentarer og
2 løsninger

PHP max 80 tegn, split ikke i ord?

Hej Eksperter.

Jeg ønsker at lave en funktion der viser max 80 tegn af en sætning, hvorefter den afslutter med "..."- så vidt muligt ønsker jeg ikke at stoppe midt inde i et ord..

Er der nogle der kan fortælle mig hvilke funktioner jeg skal kigge på? Eventuelt bidrage med et eksempel?

På forhånd tak :)
Avatar billede cronaldo Nybegynder
04. juli 2008 - 23:16 #1
Vi kan starte med denne funktion som jeg engang har fundet på experten!
Den finder i hvert fald max 80 tegn af $str .. men ved ikk med det med ikke at slutte midt i et ord?


$max_length = 80;
if(strlen($str)>$max_length){
  $str = substr($str,0,($max_length-1)) . '...';
}
Avatar billede hmortensen Nybegynder
05. juli 2008 - 12:28 #2
En simpel utestet funktion, men skulle gerne give noget at arbejde med.

function ShortenText($str)
{
  if (strlen($str) <= 80)
    return $str;

  $newStr = substr($str, 0, 80);
  if (($index = strrpos($newStr, " ")) !== false)
  {
    return substr($newStr, 0, $index)."...";
  }
  else
  {
    //ingen spaces i teksten
  }
}
Avatar billede coderdk Praktikant
06. juli 2008 - 12:42 #3
Et alternativ:

$txt = preg_replace( "/(@!#¤.*)$/", "...", wordwrap( $txt, 72, "@!#¤", FALSE ) );
Avatar billede coderdk Praktikant
06. juli 2008 - 12:42 #4
Ja, du skal så lige ændre 72 til 80 ;)
Avatar billede mrfunder Nybegynder
07. juli 2008 - 12:41 #5
Hej allesammen.. smid et svar og tusind tak for hjælpen :)
Avatar billede coderdk Praktikant
11. juli 2008 - 11:46 #6
Her er et fra mig :)
Avatar billede hmortensen Nybegynder
11. juli 2008 - 13:59 #7
Og et her :)
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
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

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