Avatar billede danic Nybegynder
20. februar 2010 - 14:33 Der er 6 kommentarer og
1 løsning

Max 40 tegn men kun hele ord?

Hvordan cutter jeg en sætning ned til sidste hele ord, men max 40 tegn?

denne går udelukkende på tegn.

$new_products['products_name'] = substr($new_products['products_name'], 0, 40);
Avatar billede michael_stim Ekspert
20. februar 2010 - 15:17 #1
Kig på:

http://se.php.net/substr

Der er et hav af funktioner, der gør det ønskede.
Avatar billede repox Seniormester
20. februar 2010 - 17:27 #2
Jeg gør normaltvis således:



  function shorten( $string, $maxlen = 40 )
  {
    $parts = explode(" ", $string);
    while( strlen(implode(" ", $parts)) > $maxlen )
      $dump = array_pop($parts);

    return implode(" ", $parts);
  }

  echo shorten("Dette er en længere tekststreng som skal stoppe ved højst 40 tegn, dog med hele sætninger");

  echo shorten("Den kan også stoppe tidligere eller senere hvis ønsket, ved at angive længden som paramter to", 60);




Den kan naturligvis finpudses, så den ikke smider rester af kommaer og skidt og møg ud...
Avatar billede danic Nybegynder
20. februar 2010 - 17:39 #3
err0r.dk> Den virker fint
Kan den udvides så den indsætter .. efter sidste ord - hvis teksten er 40+ tegn?
Avatar billede repox Seniormester
20. februar 2010 - 17:46 #4
Ja, det er ret nemt - men så skal man også huske at tage højde for at med de tre punktummer kommer vi jo op på 43 tegn i alt; så det regner vi bare lige med:


  function shorten( $string, $maxlen = 40 )
  {
    if( strlen($string) <= $maxlen )
      return $string;

    $parts = explode(" ", $string);
    while( strlen(implode(" ", $parts)) > ($maxlen - 3) )
      $dump = array_pop($parts);

    return implode(" ", $parts)."...";
  }

Avatar billede danic Nybegynder
20. februar 2010 - 18:30 #5
Tak for hjælpen, du må gerne smide et svar!
Avatar billede repox Seniormester
20. februar 2010 - 20:26 #6
Det fik du her.
Avatar billede showsource Seniormester
21. februar 2010 - 07:28 #7
Med strrpos() kan man finde sidste mellemrum.
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