07. marts 2007 - 15:35
Der er
12 kommentarer og 1 løsning
afkorte en string
Hej Hvordan afkorter man en string med php? jeg har forsøgt at bruge preg_replace, men kan ikke helt finde ud af at skrive de rigtige parametre...
Annonceindlæg fra Kommando
07. marts 2007 - 15:39
#1
07. marts 2007 - 15:40
#2
Eller med preg_replace, ca 40 tegn: $forkortet = preg_replace( "/^(.{40}.*\b)/s", "\\1...", $tekst );
07. marts 2007 - 15:43
#3
substr er selvfølgelig det letteste, men kan man få den til at beskære ved et helt ord?
07. marts 2007 - 15:50
#4
07. marts 2007 - 15:52
#5
strange_76, wordwrap afkorter jo ikke, den deler den op og indsætter linjeskift ;P mrbs, Nej, substr kan ikke skære ved et ord, det skulle den preg_replace jeg har skrevet gøre :)
07. marts 2007 - 15:56
#6
den havde jeg jo ik lige tænkt på.. jeg trækker mig bare igen så ;-)
08. marts 2007 - 19:58
#7
Hej! Jeg er faktisk kommet frem til at preg_replace løsningen er den bedste, men den virker ikke i den form den står i der... Jeg kan ikke helt overskue parametrene i den... :( Sådan har jeg brugt den: $nytekst = preg_replace( "/^(.{40}.*\b)/s", "\\1...", $postSvar[tekst] ); Men den spytter samme mængde tekst ud uanset.. Mads
08. marts 2007 - 19:59
#8
$postSvar[tekst] er det udtræk jeg får af databasen, og den er helt ok!
08. marts 2007 - 20:08
#9
en søgning gav mig dette brugbare resultat :) function short_text($text, $length=360) { if (strlen($text) > $length) { $pattern = '/^(.{0,'.$length.'}\\b).*$/s'; $text = preg_replace($pattern, "$1...", $text); } return $text; }
08. marts 2007 - 20:10
#10
Vil coderdk have point for god hjælp?
08. marts 2007 - 20:16
#11
... Bare for ordens skyld må jeg have det på det rene at det vel var " .*$/s " der løser problemet, dan den tger sig af den lille rest af et ord der evt. bliver tilbage... ikke ??
09. marts 2007 - 01:08
#12
Nah, nap dem selv :)
09. marts 2007 - 12:18
#13
Det gør jeg så! Takker
Vi tilbyder markedets bedste kurser inden for webudvikling