Avatar billede nh92 Nybegynder
28. januar 2009 - 15:10 Der er 9 kommentarer og
1 løsning

substr problem

Hej eksperter..

På min hjemmeside, skal jeg have en klumme på min forside, men der skal kun stå lidt tekst f.eks. 100 ord. Jeg har fundet frem til at man skal bruge koden substr, men hvordan virker den? Har læst lidt om det uden held. Kan nogle hjælpe mig? Hvordan skal det sættes op?

Hilsen NH92
Avatar billede jakobdo Ekspert
28. januar 2009 - 15:19 #1
F.eks.:

$text = "dhsahdsahduashduashudhasudhashduashdusahudhuahaud dsahdsa dashu dashduashudh asudhas pdjasd jasdoas kodkao ";
$start = 0; //Hvor skal vi starte ? 0 = første tegn, 1 = andet tegn osv...
$length = 10; //Længde af den ønskede streng.
echo substr  ($text,$start,$length);
Avatar billede olebole Juniormester
28. januar 2009 - 15:21 #2
<ole>

$s = "Bla bla bla bla blabla bla blabla bla bla bla blabla";
$s = substr($s, 0, 6);

print $s; // Returnerer 'Bla bl'

/mvh
</bole>
Avatar billede olebole Juniormester
28. januar 2009 - 15:22 #3
Hehe ... Ole, husk at opdater siden, når du har skænket kaffe  =)
Avatar billede nh92 Nybegynder
28. januar 2009 - 15:29 #4
Tak for de hurtige svar.
Det virker sgu jakobdo. Tak skal du have. Smid du bare et svar ;)
Avatar billede jakobdo Ekspert
28. januar 2009 - 15:32 #5
Svar! :o)
Avatar billede jakobdo Ekspert
28. januar 2009 - 15:34 #6
Jeg drikker ikke kaffe. :o)
Avatar billede olebole Juniormester
28. januar 2009 - 15:52 #7
;D
Avatar billede jakobdo Ekspert
28. januar 2009 - 15:54 #8
Takker for point.
Avatar billede TommyB Nybegynder
28. januar 2009 - 16:22 #9
Det er ikke altid hensigtsmessigt bare at klippe efter x-antal tegn, hvad nu hvis du har specialtegn gemt med htmlentities i din database og fx. klipper midt i et &aelig; (tegnet æ).

Jeg har lige lavet en funktion som eksempel :
================================================
function strTrunk($s, $l) {
    if (strlen($s) < $l) return $s;
    $p = strpos($s, " ", $l);
    if (strlen($s) > $p) {
        return substr($s, 0, $p) . "...";
    } else {
        return substr($s, 0, $limit);
    }
}

$string = "The quick brown fox jumps over the lazy dog";
echo strTrunk($string,30);

============================================

Du fodrer den med en streng og hvor mange tegn du ønsker den skal bryde efter, så fra den grænse tager den det næste mellemrum og bryder dér. På den måde klipper den ikke bare midt i et ord.
Avatar billede TommyB Nybegynder
28. januar 2009 - 16:25 #10
Retter lige mig selv, fandt en fejl i funktionen, men du kan se min ide :

function strTrunk($s, $l) {
    if (strlen($s) < $l) return $s;
    $p = strpos($s, " ", $l);
    if (strlen($s) > $p && $p > 0) {
        return substr($s, 0, $p) . "...";
    } else {
        return $s;
    }
}
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