/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
x antal tegn i en indledning
Fra : Frank Madsen


Dato : 10-02-02 01:56

Hej igen,

Jeg har set et sted en måde hvorpå man kan begrænse en intro til f.eks 50
tegn, og så kan man sætte et link ind, "læs mere her" ?!?

F.eks på min forside (www.anakin.dk) har jeg nogle forskellige brudstykker
af en tekst, dem har jeg selv siddet og klippet til så de både gav mening
men også at de ikke blev klippet over midt i et ord, men jeg har set at man
kan kode den til at tage f.eks de første 50, 100 etc etc tegn af en
historie, ........ jeg kan bare ikke huske hvor..... nogen der kan hjælpe
?!?

Hilsen Frank

P.S. Jeg er rimelig grøn i det her, så hjælp mig lidt grundigere end bare
"kig i strng" eller hvad det nu hedder... På forhånd tak...



 
 
Jonas Delfs (10-02-2002)
Kommentar
Fra : Jonas Delfs


Dato : 10-02-02 02:24

Hej Frank,

"Frank Madsen" <ng@nospam.dk> skrev i en meddelelse
news:3c65c64b$0$22355$edfadb0f@dspool01.news.tele.dk...
> Jeg har set et sted en måde hvorpå man kan begrænse en intro til f.eks 50
> tegn, og så kan man sætte et link ind, "læs mere her" ?!?
>
> F.eks på min forside (www.anakin.dk) har jeg nogle forskellige brudstykker
> af en tekst, dem har jeg selv siddet og klippet til så de både gav mening
> men også at de ikke blev klippet over midt i et ord, men jeg har set at
man
> kan kode den til at tage f.eks de første 50, 100 etc etc tegn af en
> historie, ........ jeg kan bare ikke huske hvor..... nogen der kan hjælpe
> ?!?

Jeg har tidligere skrevet en lille artikel om emnet:
http://delfs.dk/articles/overview/

--
Mvh./Best Regards
Jonas Delfs, http://delfs.dk



Jonas Due Vesterhede~ (10-02-2002)
Kommentar
Fra : Jonas Due Vesterhede~


Dato : 10-02-02 02:32

In article <3c65c64b$0$22355$edfadb0f@dspool01.news.tele.dk>, Frank Madsen
wrote:
> Jeg har set et sted en måde hvorpå man kan begrænse en intro til f.eks 50
> tegn, og så kan man sætte et link ind, "læs mere her" ?!?
>
> F.eks på min forside (www.anakin.dk) har jeg nogle forskellige brudstykker
> af en tekst, dem har jeg selv siddet og klippet til så de både gav mening
> men også at de ikke blev klippet over midt i et ord, men jeg har set at man
> kan kode den til at tage f.eks de første 50, 100 etc etc tegn af en
> historie, ........ jeg kan bare ikke huske hvor..... nogen der kan hjælpe
Her er et eksempel på en kode der hårdt og brutalt klipper efter 50. tegn:

$forkortet = substr($tekst, 0, 50);

Funktionen substr starter ved tegn 0 og forsætter 50 tegn frem. Det er
selvfølgelig ikke så smart fordi vi højst sandsynligt klipper midt i et ord.
Man kan derfor udvide den lidt til at fortsætte indtil første punktum efter
50. tegn:

<? if(strlen($tekst) > 50) {
   $forkortet = substr($tekst, 0, 50);
   for($i=50; $tekst{$i} != "."; $i++) {
      $forkortet .= $tekst{$i};
   }
   $forkortet .= "..\n";
} ?>

Først tester vi om teksten er længere end 50 tegn. Hvis den er det, tager vi de
første 50 tegn og putter dem i $forkortet. Derefter tilføjer vi et tegn ad
gangen til $forkortet, indtil vi støder på et punktum. Til sidst tilføjer vi to
punktummer så teksten slutter på "...".

Håber det hjalp...

Mvh. Jonas
--
"A conservative is a man who is too cowardly to fight and too fat to run."
-- Elbert Hubbard

Registered Linux user #198786 (http://counter.li.org)

Frank Madsen (10-02-2002)
Kommentar
Fra : Frank Madsen


Dato : 10-02-02 14:47

Hej,

Mange tak for svaret, og når jeg kan få øjnene til at stå stille, kan jeg
sikkert også se hvad alt det du har skrevet betyder.

Jeg tør næsten ikke spørge om man så også kan inddele en tekst i sider af
f.eks 500 tegn, ?!?

> Her er et eksempel på en kode der hårdt og brutalt klipper efter 50. tegn:
>
> $forkortet = substr($tekst, 0, 50);
>
> Funktionen substr starter ved tegn 0 og forsætter 50 tegn frem. Det er
> selvfølgelig ikke så smart fordi vi højst sandsynligt klipper midt i et
ord.
> Man kan derfor udvide den lidt til at fortsætte indtil første punktum
efter
> 50. tegn:
>
> <? if(strlen($tekst) > 50) {
> $forkortet = substr($tekst, 0, 50);
> for($i=50; $tekst{$i} != "."; $i++) {
> $forkortet .= $tekst{$i};
> }
> $forkortet .= "..\n";
> } ?>
>
> Først tester vi om teksten er længere end 50 tegn. Hvis den er det, tager
vi de
> første 50 tegn og putter dem i $forkortet. Derefter tilføjer vi et tegn ad
> gangen til $forkortet, indtil vi støder på et punktum. Til sidst tilføjer
vi to
> punktummer så teksten slutter på "...".
>
> Håber det hjalp...
>
> Mvh. Jonas
> --
> "A conservative is a man who is too cowardly to fight and too fat to run."
> -- Elbert Hubbard
>
> Registered Linux user #198786 (http://counter.li.org)



Frank Madsen (10-02-2002)
Kommentar
Fra : Frank Madsen


Dato : 10-02-02 15:07

> $forkortet = substr($tekst, 0, 50);
>
> Funktionen substr starter ved tegn 0 og forsætter 50 tegn frem. Det er
> selvfølgelig ikke så smart fordi vi højst sandsynligt klipper midt i et
ord.
> Man kan derfor udvide den lidt til at fortsætte indtil første punktum
efter
> 50. tegn:
>
> <? if(strlen($tekst) > 50) {
> $forkortet = substr($tekst, 0, 50);
> for($i=50; $tekst{$i} != "."; $i++) {
> $forkortet .= $tekst{$i};
> }
> $forkortet .= "..\n";
> } ?>

Hvis nu jeg vil tage de første 50 tegn fra en tekst på en anden side,
forstået på den måde at min forside som indeholder disse tekster automatisk
bliver ændret hvis jeg ændrer eller tilføjer tekst på selve siden... hvordan
gør jeg så ??

Kontakt mig gerne på icq hvis du ikke mener hvad jeg forstår :) 142031611

Mange hilsner Frank



Jonas Due Vesterhede~ (10-02-2002)
Kommentar
Fra : Jonas Due Vesterhede~


Dato : 10-02-02 17:00

In article <3c667f31$0$22298$edfadb0f@dspool01.news.tele.dk>, Frank Madsen
wrote:
[snip]
For at tage de første 500 tegn, skal du bare erstatte 50 med 500. For at gøre
det lettere at ændre har jeg puttet det i variablen $tegn:
<?
$tegn = 500; //antal tegn du vil have med

if(strlen($tekst) > $tegn) {
   $forkortet = substr($tekst, 0, $tegn);
   for($i=$tegn; $tekst{$i} != "."; $i++) {
      $forkortet .= $tekst{$i};
   }
   $forkortet .= "..\n";
} ?>

> Hvis nu jeg vil tage de første 50 tegn fra en tekst på en anden side,
> forstået på den måde at min forside som indeholder disse tekster automatisk
> bliver ændret hvis jeg ændrer eller tilføjer tekst på selve siden... hvordan
> gør jeg så ??
Det kommer an på hvordan du gemmer teksten på dine undersider. Hvis det er i
almindelige filer, så er det ret svært, fordi så skal alle HTML tags og PHP
koder fjernes. Men hvis du har det i en database eller i en "flad" tekstfile så
skal du bare hente teksten ind ligesom du gør på din undersider og køre den
igennem koden foroven... Jeg tror det ville hjælpe dig en del hvis du læste
nogle tutorials på enten http://www.php.dk eller http://www.php.net.

Mvh. Jonas

--
"A conservative is a man who is too cowardly to fight and too fat to run."
-- Elbert Hubbard

Registered Linux user #198786 (http://counter.li.org)

Søg
Reklame
Statistik
Spørgsmål : 177505
Tips : 31968
Nyheder : 719565
Indlæg : 6408554
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste