[PHP] Inkorten van tekst

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo,

Ik heb een probleem met het inkorten van tekst. Ik wil een bericht inkorten met max. 11 regels. Nouw heb ik de functie wordwrap() gebruikt maar daar kom ik niet verder mee omdat er meer I's op 1 regel passen dan een M.. de Tweakers frontpage>nieuwsberichten is een goed voorbeeld van waar ik heen wil. Wat is hier het geheim van? O-)

[ Voor 3% gewijzigd door Verwijderd op 21-05-2004 04:09 ]


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Het lijkt me dat men gewoon de gemiddelde breedte van een letter als uitgangspunt neemt. Het aantal i's op een regel is meestal klein, en het aantal w's en m's ook, dus kan het geen kwaad om in je afkortingsprocedure de breedte van bijvoorbeeld een n als uitgangspunt te nemen. Volgens mij is er in PHP geen manier om de lengte van een string in pixels te meten, puur omdat dat een taak van je HTML of CSS sheet is.

Je kan natuurlijk ook met een array werken, waarin je alle letters opslaat met een bijbehorende breedte, maar of je voor zoiets banaals nu zo'n brute-force procedure wil schrijven valt te bezien. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • GrimaceODespair
  • Registratie: December 2002
  • Laatst online: 21:32

GrimaceODespair

eens een tettenman, altijd ...

Verwijderd schreef op 21 mei 2004 @ 04:06:
de Tweakers frontpage>nieuwsberichten is een goed voorbeeld
Pak die titels maar eens, en zet ze onder elkaar in notepad. Ik kan verkeerd zitten, maar volgens mij pakken ze toch gewoon een vast aantal karakters. Kan ook moeilijk anders, omdat je nooit weet hoe je tekst precies gerenderd zal worden in browser X.

edit:
en vergeet je font in notepad niet op [i]system[i] of een ander fixed-width font te zetten

[ Voor 12% gewijzigd door GrimaceODespair op 21-05-2004 05:56 ]

Wij onderbreken deze thread voor reclame:
http://kalders.be


Acties:
  • 0 Henk 'm!

  • beetle71
  • Registratie: Februari 2003
  • Laatst online: 09-09 15:24
Je zou ook de tekst in een div met overflow:hidden kunnen zetten,
de regelafstand op bijv. 15px; en dan de div 165px; hoog maken. Je maakt dan bovendien 'gratis' gebruikt van de correcte woordafbreking van de browser.

Acties:
  • 0 Henk 'm!

Verwijderd

Als het heel erg belangrijk voor je is, dan moet je gewoon lekker de lettertjes en cijfertjes (plus hoofdletters en `rare` tekens) opmeten in bijv. PS en deze in een array zetten, zoals NMe84 al suggereerde.
Heb ik ook eens moeten doen en het werkt uiteindelijk perfect.

Zo heel gek veel werk is het niet eens; dat lijkt in eerste instantie wel zo maar ik denk als je er een goed kwartier voor gaat zitten je al een heel eind komt.

Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
http://nl3.php.net/manual/en/function.wordwrap.php

daar staat toch een voorbeeld zoals jij dat bedoeld geloof ik.

en gebruik anders gewoon http://nl3.php.net/substr ervoor, dan is het een vast aantal zoals volgens GrimaceODespair ook gedaan wordt op t.net

Acties:
  • 0 Henk 'm!

  • HunterPro
  • Registratie: Juni 2001
  • Niet online
gebruik de search, er is hier letterlijk zo'n topic geweest al even geleden.

Acties:
  • 0 Henk 'm!

Verwijderd

Verwijderd schreef op 21 mei 2004 @ 09:28:
Als het heel erg belangrijk voor je is, dan moet je gewoon lekker de lettertjes en cijfertjes (plus hoofdletters en `rare` tekens) opmeten in bijv. PS en deze in een array zetten, zoals NMe84 al suggereerde.
Heb ik ook eens moeten doen en het werkt uiteindelijk perfect.

Zo heel gek veel werk is het niet eens; dat lijkt in eerste instantie wel zo maar ik denk als je er een goed kwartier voor gaat zitten je al een heel eind komt.
gewoon php installeren met gd en imagefontwidth misbruiken om array in elkaar te draaien
Pagina: 1