Avatar billede s0mmer Nybegynder
09. februar 2009 - 19:01 Der er 7 kommentarer og
1 løsning

Forkorte en tekststreng

Hej eksperter,

Hvis jeg har en lang tekst streng, hvordan gør jeg at jeg således kun printer de 200 første karaktere ud?
Avatar billede nicklasb Nybegynder
09. februar 2009 - 19:06 #1
Avatar billede psychopixi Nybegynder
09. februar 2009 - 19:20 #2
For at sikre mod at den deler ord midt over, foreslår jeg denne løsning:
<?php
$string = "EN MEGET LANG TEKST";
$string = substr($string, 0, 200);
$string_exp = explode(" ", $string);
for($x=0; $x < (count($string_exp)-1); $x++){
    $short_string .= " ".$string_exp[$x]."";
}
echo $short_string . "...";
?>
Avatar billede nicklasb Nybegynder
09. februar 2009 - 19:27 #3
#2, De diskuterer ivrigt det samme på den side jeg linkede til. Der er også en række tilsvarende (og efter min mening også pænere) løsninger på problemet ..
Avatar billede psychopixi Nybegynder
09. februar 2009 - 19:33 #4
#3
Spændende.
Læste dog ikke din kilde, men jeg vil da foreslå at du poster den pæne kode du taler om, sådan at s0mmer kan få den bedst mulige løsning:)
Avatar billede s0mmer Nybegynder
09. februar 2009 - 19:54 #5
psychopixi > Jeg brugte ud fra nicklasb's link:
$string = substr($string, 0, 200); hvad er dårligt ved det?
Avatar billede psychopixi Nybegynder
09. februar 2009 - 19:59 #6
Der er intet dårligt ved det, men du kan blot risikerer at den deler et ord midt over...

Lad mig vise dig hvad jeg mener:
<?php
$string = "en meget lang tekst";
$string = substr($string, 0, 15);
echo $string;
?>
output: en meget lang t

<?php
$string = "en meget lang tekst";
$string = substr($string, 0, 15);
$string_exp = explode(" ", $string);
for($x=0; $x < (count($string_exp)-1); $x++){
    $short_string .= " ".$string_exp[$x]."";
}
echo $short_string;
?>
output en maget lang


Altså undgår du at der bliver skrevet fragmenterede ord.
Avatar billede olebole Juniormester
10. februar 2009 - 12:53 #7
<ole>

tjaaahhh ... mon ikke et afhugget slutord med 'udeladelsestegn' efter er defacto standard?  =)

$string = substr($string, 0, 200)."...";

/mvh
</bole>
Avatar billede s0mmer Nybegynder
10. februar 2009 - 14:11 #8
Well.. et forkortet ord, er mig ligemeget.. Desuden lød spørgsmålet bare på om at forkorte en streng efter karaktere. Så nicklasb render med points. Ellers tak for hjælpen allesammen.
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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