[PHP] Te lange woorden verkorten

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik zit met een kleine vraag, ik ben een reactie systeem aan het maken, maar nu wil er voor zorgen dat als er iemand een heel lang woord invoert, dat dan de pagina niet helemaal gaat vervormen.
Ik heb de functie wordwrap gebruikt, maar die zet ook <br> op plekken waar het woord helemaan niet te lang is...

Hier is het stukje code waar het om gaat:
code:
1
2
3
4
while($reacties = mysql_fetch_array($ReactiesResult)){

echo ReactiesReplaceTags(stripslashes(brout(wordwrap($reacties['reactie'],40,'<br>',1))))."<br>";
}


en de output in de browser ziet er dan zo uit:
hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
hhhhhhhhhhhhhhhhhh
Gewone text om testen of de wordwrap
de rest van de text alleen laat.
ofwel, het te lange woord neemt meer width in beslag dan de gewone text, daardoor werkt het nog niet zoals ik wil... ik wil namelijk dat alleen te lange woorden worden gesplitst!

alvast bedankt voor hulp

Acties:
  • 0 Henk 'm!

Verwijderd

PHP:
1
$output = preg_replace ( '/[^ \r\n\t-]{40}/', '\\0<br />', $input );


In mensentaal:
Als hij een stuk van 40 opeenvolgende tekens tegenkomt waarin geen spaties, tabs, linebreaks of liggende streepjes tegenkomt, wordt dat stuk vervangen door zichzelf met een <br /> erachter.

[ Voor 9% gewijzigd door Verwijderd op 28-02-2004 23:04 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hierbij krijg ik een foutmelding:

[error] PHP Warning: Unknown modifier '{'

Acties:
  • 0 Henk 'm!

Verwijderd

Excuses, ik was iets vergeten, ik heb mijn post aangepast.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Bedankt, het werkt nu :)

Acties:
  • 0 Henk 'm!

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 20-09 22:44

MBV

waarom een <br/> erachter? Waarom niet gewoon een spatie, zodat je browser kan afbreken? <br/> is iets dat ik altijd zo veel mogelijk wil vermijden, omdat een <br/> meestal een indicatie is dat je opmaakregels niet goed zijn.

Acties:
  • 0 Henk 'm!

  • PrisonerOfPain
  • Registratie: Januari 2003
  • Laatst online: 26-05 17:08
kijk ook eens naar de laatste parameter van de wordwrap functie...

Acties:
  • 0 Henk 'm!

Verwijderd

MBV schreef op 28 februari 2004 @ 23:13:
waarom een <br/> erachter? Waarom niet gewoon een spatie, zodat je browser kan afbreken? <br/> is iets dat ik altijd zo veel mogelijk wil vermijden, omdat een <br/> meestal een indicatie is dat je opmaakregels niet goed zijn.
Ik moet je hier wel gelijk geven ja :)

Acties:
  • 0 Henk 'm!

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 19-09 22:18

chem

Reist de wereld rond

Verwijderd schreef op 28 februari 2004 @ 23:14:
[...]

Ik moet je hier wel gelijk geven ja :)
een <wbr /> is misschien nog wel mooier dan :)

Klaar voor een nieuwe uitdaging.


Acties:
  • 0 Henk 'm!

Verwijderd

chem schreef op 28 februari 2004 @ 23:29:
[...]

een <wbr /> is misschien nog wel mooier dan :)
Of een &shy; misschien ja, maar dat zijn dingen die volgens mij niet zo best worden ondersteund.

[ Voor 5% gewijzigd door Verwijderd op 28-02-2004 23:37 ]


Acties:
  • 0 Henk 'm!

  • Mx. Alba
  • Registratie: Augustus 2001
  • Laatst online: 20-09 12:02

Mx. Alba

hen/hun/die/diens

Als het niet teveel offtopic is, mag ik vragen wat <wbr /> en &shy; zijn?

[ Voor 7% gewijzigd door Mx. Alba op 28-02-2004 23:59 ]

Het is alleen een echte hetze als het uit Hetzerath komt, anders is het gewoon sprankelende ophef.


Acties:
  • 0 Henk 'm!

  • We Are Borg
  • Registratie: April 2000
  • Laatst online: 14:26

We Are Borg

Moderator Wonen & Mobiliteit / General Chat
Mx. Alba schreef op 28 februari 2004 @ 23:58:
Als het niet teveel offtopic is, mag ik vragen wat <wbr /> en &shy; zijn?
http://msdn.microsoft.com...reference/objects/wbr.asp :)

Ik had er ook nog nooit van gehoord

[ Voor 10% gewijzigd door We Are Borg op 29-02-2004 00:41 ]


Acties:
  • 0 Henk 'm!

Verwijderd

&shy; is een soft hyphen, een soort onzichtbaar streepje dat dienst doet als separator in woorden. Het geeft aan waar woorden gebroken mogen worden. Als een woord er inderdaad ook wordt gebroken moet het streepje zichtbaar worden.

Internet Explorer doet dit prima, vroege Mozilla versies lieten het streepje altijd zien en braken woorden niet af, nieuwere Mozilla versies laten het streepje niet meer zien maar breken ook niet af.

Eigenlijk kun je het beter nog niet gebruiken, denk ik.

[ Voor 7% gewijzigd door Verwijderd op 29-02-2004 09:25 ]


Acties:
  • 0 Henk 'm!

  • coubertin119
  • Registratie: Augustus 2002
  • Laatst online: 15-09 17:06
<wbr> is not supported by Opera and Safari.

​ is not supported by Explorer Mac and adds a weird glyph in Explorer Windows.

Skat! Skat! Skat!


Acties:
  • 0 Henk 'm!

  • PrisonerOfPain
  • Registratie: Januari 2003
  • Laatst online: 26-05 17:08
Verwijderd schreef op 28 februari 2004 @ 22:55:
PHP:
1
$output = preg_replace ( '/[^ \r\n\t-]{40}/', '\\0<br />', $input );


In mensentaal:
Als hij een stuk van 40 opeenvolgende tekens tegenkomt waarin geen spaties, tabs, linebreaks of liggende streepjes tegenkomt, wordt dat stuk vervangen door zichzelf met een <br /> erachter.
Vanwaar z'n (onzinnige) regexp, als het ook met de functie wordwrap kan?

Acties:
  • 0 Henk 'm!

Verwijderd

Omdat die onzinnige regexp wel rekening houdt met tabs en hyphens.

Acties:
  • 0 Henk 'm!

  • Mx. Alba
  • Registratie: Augustus 2001
  • Laatst online: 20-09 12:02

Mx. Alba

hen/hun/die/diens

Is [^\s-] niet simpeler? \s is namelijk het zelfde als [ \r\n\t]

Het is alleen een echte hetze als het uit Hetzerath komt, anders is het gewoon sprankelende ophef.


Acties:
  • 0 Henk 'm!

Verwijderd

en hoe zit het dan met html tags?

Acties:
  • 0 Henk 'm!

  • Mx. Alba
  • Registratie: Augustus 2001
  • Laatst online: 20-09 12:02

Mx. Alba

hen/hun/die/diens

Verwijderd schreef op 01 maart 2004 @ 08:59:
en hoe zit het dan met html tags?
Wat voor HTML tags?

Het is alleen een echte hetze als het uit Hetzerath komt, anders is het gewoon sprankelende ophef.

Pagina: 1