Toon posts:

[CF] html wel weergeven, maar niet tellen

Pagina: 1
Acties:

Verwijderd

Topicstarter
In de database staat een veld met html-code's (van een html-editor). Op de website wil ik alleen de eerste 350 tekens van dat veld weergeven.

Met: #LEFT(db.veld, 350)# telt hij ook de html-code's als karakter met als gevolg dat in sommige gevallen er maar 100 karakters komen te staan (de rest is code).

Hij zou dus eigenlijk moeten tellen hoeveel ECHTE karakters er zijn, en hoeveel karakters er code zijn. Als er dus (binnen de selectie van 350 echte karakters) 220 karakters aan code meegeleverd worden, moet de code worden #LEFT(db.veld, 570)#... Maar hoe krijg je dat getal opgeteld?

  • Skaah
  • Registratie: Juni 2001
  • Niet online
Met een regexp de karakters bepalen die opgeteld moeten worden?

[edit]
Vergeet niet dat er binnen die laaste 220 karakters van de 570 ook weer code karakters zitten.
Is het niet makkelijker om de hele tekst uit een database te plukken, te strippen van HTML tags en daarna in te korten?
Pseuocode:
code:
1
2
3
$string = get_from_db($veld);
$string = preg_replace("|</?\w+.*>|ui",'',$string);
$string = substr($string,350);

Edit2: houdt je ook rekening met de &quot; &euml; &amp; &nbsp; karakters, als je die ook als één wilt tellen, moet je ze allemaal vervangen door een placeholder (bijv. \x00) en in een array opslaan, string inkorten, en weer terugvervangen...

[ Voor 112% gewijzigd door Skaah op 03-02-2004 11:36 ]