Hallo,

Ik dacht een basic probleem te hebben, maar kom er nu toch niet uit. Ik wil een bericht dat alle mogelijke tekens kan bevatten goed weergeven. Dit bericht is op de juiste manier opgeslagen en zit dan ook correct in de database. Nu wil ik het als volgt weergeven:

<td class="bericht" height="100" valign="top" colspan="2"><?=nl2br(htmlentities($Row["body"], ENT_QUOTES))?></td>

$Row["body"] bevat dus het bericht en met bovenstaande code worden alle tekens en line breaks juist weergegeven. Probleem is echter dat ik ook nog een wordwrap toe moet passen omdat het bericht niet oneindig breed mag zijn. Als ik nu echt dit doe:

<td class="bericht" height="100" valign="top" colspan="2"><?=wordwrap(nl2br(htmlentities($Row["body"], ENT_QUOTES)),80,"<br />\n",1)?></td>

dan gaat het fout, er word wel gewrap maar er verschijnt hier en daar ook /> in mijn bericht. Wat is wel een goede oplossing?
met nl2br() stop je <br /> in de string. Als je dan vervolgens wordwrap() erover heen gooit telt hij de <br /> ook mee in het afbreken van de lijnen, dan kijg je bijv: <br

/>

De oplossing is dus waarschijnlijk om de functies andersom te gebruiken:


<?=nl2br(wordwrap(htmlentities($Row["body"], ENT_QUOTES),80,"<br />\n",1))?> 
dank voor de reactie. Als ik echter de functies omdraai dan krijg ik extra lege regels in mijn bericht. Ik krijg lege regels op plaatsen waar ik deze niet heb ingevoerd, dit is dus ook geen goede oplossing.

iemand anders nog wellicht?
Waarom toon je de inhoud niet in een <TEXTAREA cols="xx">?
Ronald van Aalten schreef op 24.12.2007 18:22
Waarom toon je de inhoud niet in een <TEXTAREA cols="xx">?
Omdat je dan totaal geen controle meer hebt over de opmaak misschien?

@Floris: bekijk de broncode van de verkeerd weergegeven tekst eens. Hoe ziet die eruit? Kun je daar vreemde dingen in ontdekken?

Ik gok namelijk dat wordwrap binnen een html tag de string afbreekt en dat het daardoor mis gaat...

Reageren