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);
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.
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...
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?
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)."...";
  }

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

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





Premium
Energistyrelsen slår fast efter flere års ballade: Sådan bør kommuner og staten udregne prisen for udlejning af arealer til telemaster
Efter flere år med meget svingende priser vil Energistyrelsen med ny vejledning have ensartet de priser, som kommuner og staten tager for at udleje arealer til teleselskabernes mobilmaster. Styrelsen peger på tre forskellige beregningsmetoder, som alle kan anvende. Se den nye vejledning med tre forslag til beregning her.
Computerworld
Sikkerhedshul i sundhed.dk gør det let at snyde med coronapas
Et hul i sikkerheden hos sundhed.dk åbner op for, at coronapas-ejere kan ændre på de svar, der står i passet. Men det er dokumentfalsk, advarer sundhed.dks direktør.
CIO
Har du rost din mellemleder i dag? Snart er de uddøde - og det er et tab
Computerworld mener: Mellemledere lever livet farligt: Topledelsen får konstant ideer med skiftende hold i virkeligheden, og moden går mod flade agile organisationer. Men mellemlederen er en overset hverdagens helt med et kæmpe ansvar. Her er min hyldest til den ofte latterliggjorte mellemleder.
Job & Karriere
"Vi var nødt til at sige til dem, at I er nødt til at sende ham hjem nu, for han begynder at knække"
"Vi var nødt til at sige til dem, at I er nødt til at sende ham hjem nu, for han begynder at knække"
White paper
Så ofte rammer din sikkerhedsleverandør plet – eller helt ved siden af
Denne uafhængige evaluering fra MITRE ATT&CK giver et billede af styrker og svagheder hos førende udbydere af cybersikkerhedsydelser. Rapporten vurderer bl.a. reaktion og træfsikkerhed på simulerede angreb og af, hvor hurtigt der slås alarm.