Avatar billede fragel Nybegynder
23. juli 2002 - 15:36 Der er 4 kommentarer

Skrære i tekst

Jeg har en side med nyheder hentet fra en mySQL database.
Det skal først siges, at nogle af disse nyheder godt kan indeholde
html-koder.

Da længden af nyhederne kan variere meget, ønsker jeg at beskrære dem, så de
får en nogenlunde ens længde. Dette ville jeg umiddelbart gøre ved at tælle
antal ord i posten, men dog også begrænse antal linier, hvis det skulle være
en post med mange liniebrud.
Jeg finder antal ord og liner sådan:
function linier($streng){
    $linier=explode("\n", $streng);
    $antallinier=count($linier);
    $ord = explode(" ", $streng);
    $antalord = count($ord);
    $t = "ORD: $antalord LINIER: $antallinier";
    return $t;
}

Mit problem er når jeg skal beskære en post. Hvordan sikrer jeg mig, at jeg
ikke beskærer midt imellem f.eks. <b> og </b> ... var det tilfældet, ville
resten af siden jo blive fed.

/Jeppe
Avatar billede fragel Nybegynder
23. juli 2002 - 15:58 #1
...jeg kunne selvfølgelig give mig til at tælle antallet af starttags versus antallet af slutags, men synes det er en noget ufuldstændig/besværlig løsning.
Avatar billede tipsen Nybegynder
23. juli 2002 - 16:42 #2
Svær problemstilling - glæder mig til at se svaret...
Avatar billede tipsen Nybegynder
23. juli 2002 - 16:43 #3
Jeg ville nok vælge at fjerne html-tags og præsentere nyhederne uden html-koder i oversigten...
Avatar billede teaspoon Nybegynder
23. juli 2002 - 16:47 #4
ja.. det er den simple løsning.

Hvis den anden løsning skal laves, ville det være godt at vide hvilke tags teksten eventuelt kan indeholde. Denne funktion klarer det nogenlunde:

function cut_text($str, $length) {
  $str = substr($str, 0, $length); // tager de første 300 tegn
  return preg_replace("/<[^\/]*?>[^<>]*$/", "", $str); // checker om der er et uafsluttet tag i slutningen
                                                      // og fjerner det og efterfølgende tekst hvis det findes
}
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