Avatar billede dk-andersson Nybegynder
07. juli 2011 - 15:41 Der er 1 kommentar

wordwrap()

Hey

Har denne funktion på en af mine sider
wordwrap($order_row['rabat_headline'], 130, "<br />\n");
Men mit problem er at teksten som den ændre på er blevet tilføjet via en editor og derfor indehold nogle special tegn som <strong></strong> og har nu oplevet et par gang at den deler den sådan her <strong <br /> ></strong> hvordan kommer men uden om dette problem..

Grunden til at jeg bruger denne er at jeg bruger dompdf til at lave en pdf fil. Men hvis teksten bare får lave at forbliv som den er løber den ud af mit pdf doc. Så hvis der er nogen som har en bedre måde at gøre dette på så skriv endelig til mig.
Avatar billede Slettet bruger
07. juli 2011 - 20:24 #1
wordwrap() er dum som en dør.

Da det (vel) skal være læsbart for mennesker bagefter - er du nødt til at analysere teksten, og indsætte "soft hyphens" de steder hvor ord KAN deles.
Og så lade det være op til browseren at bide strengen over dér hvor det passer bedst i forhold til den plads der er tilrådighed.

"Soft hyphens" (&_shy;) er delestreger som ikke kan ses medmindre de bliver brugt. Ret smart : )

Du bider teksten op i de enkelte ord den består af, og løber dem igennem hver for sig, tegn for tegn. Når kriterierne for at dele ordet er tilstede, indsætter du en ­&_shy; og fortsætter.

Rammer du en < er ordet slut, og kører du bare igennem til du møder dens > hvor næste ord starter.

Altså ikke en oplagt begynderopgave : )

Og husk at der er forskel på dele-reglerne på forskellige sprog!
- hvilket sprog er teksten der skal deles i ?

Det er også en ret cpu-intensiv operation, så det kan være en fordel at lade (brugerens) browser gøre arbejdet (javascript efter load) i stedet for at belaste serveren med det - det endte jeg med..

PS: Du skal ikke overskrive din originaltekst i databasen efter du har delt den på denne måde, fordi ­en &_shy; kan ikke pilles ud igen efter den er sat ind - koden kan simpelthen ikke se den; hverken PHP, javascript eller "show source" de ER der simpelthen ikke - men det er de så alligevel - Meget frustrerende!
(selv her i Ekspertens editor forsvinder de - så jeg har sat en ekstra _ ind de 3 steder hvor jeg har skrevet koden ovenfor)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester