login  Naam:   Wachtwoord: 
Registreer je!
 Forum

regels afbreken

Offline Luc18 - 22/12/2010 16:06
Avatar van Luc18Onbekend Hallo allemaal,

Ik heb een agenda weergaven op me website. Nu wil ik dat er van die agenda (wordt via nl2br gesplitst) maar maximaal 3 regels worden weergegeven.

Nu is mijn vraag hoe ik dit voor elkaar kan krijgen?
Ik ken substr, maar die splitst op characters en niet op regels..

Hoop dat iemand me kan helpen

Groeten,

Luc

3 antwoorden

Gesponsorde links
Offline Sam - 22/12/2010 17:14
Avatar van Sam PHP expert substr() splitst helemaal niet op characters. Bij substr() geef je aan welk deel van de string je wil hebben.

Met explode() kan je splitsen op een boundary string (bijvoorbeeld <br />).
Offline Beirensg - 11/01/2011 10:47
Avatar van Beirensg HTML beginner Met html is dit zeker mogelijk. Zet gewoon alles in een div met een height van 3 regels (bvb font-size=1em;height:3em) en overflow: hidden. zo toon je de drie eerste regels van de tekst, erna wordt verborgen.

Om dit te doen in PHP moet je al de lengte van de regel weten. dan kan je een schatting maken van het maximum aantal karakters op 1 regel, en je splitst de string dan.
Deze oplossing is niet ideaal omdat je nooit zeker kunt zijn van het maximum aantal karakters op 1 regel ("l" is minder breed dan een "m").

Ik zou dus voor opmaak kiezen voor html en css.
Offline Martijn - 11/01/2011 18:37
Avatar van Martijn Crew PHP tenzij je text 0.9 of 0.8em groot is, dan klopt dat al niet meer, bovendien stuur je dat veel html nutteloos naar de browser. Kost je dataverkeer en tijd. Bovendien, als iemand een stuk kopierd heb je opeens alles.

Wat sam zegt is een aardig manier. Je doet eerst nl2br() zodat elke nieuwe regel ontstaat door een <br />. Vervolgens doe je explode op die <br />. Door de laatste variabel te gebruiken kun je daar een limit op zetten
Omdat code simpeler is:

  1. $string = "tekst \n\r tekst \n\r tekst \n\r tekst \n\r tekst \n\r tekst \n\r";
  2. $string = nl2br($string);
  3. $array = explode("<br />,$string,3);
  4. // Omdat de laatste waarde van $array 'rest' is, dus regel4 en verder, wil je die weg:
  5. unset($array[count($array)-1]); // count() geeft ons hoeveel elementen ie heeft, en dan -1 omdat php vanaf 0 telt, niet 1
  6. $string = implode("<br />",$array);


Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.171s