Apua uutistekstin lyhentämiseen

Hei,

Kysymys on yksinkertainen, mutta kuitenkin liian monimutkainen eli miten kannattaisi tehdä esim. etusivulla tavallisesti käytettävä uutisen lyhennelmä, josta on linkki varsinaiseen uutiseen?

Jos haluan vaikkapa 200 merkkiä pitkän tekstin ja loppuun "lue lisää!" niin tämähän onnistuu käyttämällä substr. Ongelmana on, että uutiset sisältävät -tageja, jotka sitten voivat osua "leikkauskohtaan" hajottaen sivun. Miten tämä onnistuu tehdä siististi ilman, että joutuisin poistamaan kaikki tagit ja mielellään vielä niin, että sanatkaan eivät katkeile? Lyhennelmän viimeinen merkki pitäisi siis olla kirjain ja lopuksi "lue lisää".
5446
Äänestä

Muut lukivat myös

Vastaukset 5

Vanhimmat

Muotoilukoodeissa ei taida esiintyä välilyöntejä? Haet kohdasta 200. merkki alkuun päin ensimmäisen välilyönnin ja katkaiset siitä?

Äänestä

Laitat vaikka sen lyhennelmän sisältävälle elementille (taulusoli/div tms) sopivan koon ja määrittelet css:llä siihen mahtuman tekstin leikkautumaan pois.

overflow: hidden;
http://www.w3.org/TR/CSS2/visufx.html#overflow

Äänestä
  • Niin no tuo siis on kans aika "dirty" -ratkaisu. Sanat voivat jäädä kesken yms mutta ei riko mitään sivua kuitenkaan.

    Äänestä

strrpos:n avulla etsit ensimmäisen välilyönnin 200:n merkin jälkeen, leikkaat ja lisäät 'lue lisää...'
sen jälkeen htmlspecialchars(), niin teksti ei hajota sivua

Äänestä

Niin eihän sulla se teksti saa sisältää mitään tageja. Nehän tulee generoida vasta tulostusvaiheessa. Saatat nimitäin haluta muutella tageja tarpeen mukaan. Toinen vaihtoehto on stripata tagit pois tulostustekstistä. Haet ensin vaikka 300 merkkiä halutusta tekstistä, jonka jälkeen hurautat strip_tags() funktion läpi tuon tekstin. Lopuksi lyhennät vielä tarpeen mukaan tuota tekstiä.

Äänestä

Kommentoi aloitusta


avuton09 kirjoitti:

Hei,

Kysymys on yksinkertainen, mutta kuitenkin liian monimutkainen eli miten kannattaisi tehdä esim. etusivulla tavallisesti käytettävä uutisen lyhennelmä, josta on linkki varsinaiseen uutiseen?

Jos haluan vaikkapa 200 merkkiä pitkän tekstin ja loppuun "lue lisää!" niin tämähän onnistuu käyttämällä substr. Ongelmana on, että uutiset sisältävät -tageja, jotka sitten voivat osua "leikkauskohtaan" hajottaen sivun. Miten tämä onnistuu tehdä siististi ilman, että joutuisin poistamaan kaikki tagit ja mielellään vielä niin, että sanatkaan eivät katkeile? Lyhennelmän viimeinen merkki pitäisi siis olla kirjain ja lopuksi "lue lisää".

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu