[php] + [ubb] eerste 100 tekens zonder ubb-tags

Pagina: 1
Acties:

  • Rense Klinkenberg
  • Registratie: November 2000
  • Laatst online: 15-09 23:45
Ik ben met een cms bezig, waarbij de beheerders ubb-tags kunnen gebruiken om de opmaak een beetje aan te passen.

Op de frontpage komt nu een lijst te staan met de laatste 5 nieuwsberichten. Omdat het een beetje onzin zou zijn om het hele bericht er neer te zetten, woren alleen de eerste 100 tekens afgebeeld.

Op zich werkt dat wel goed, zolang er geen onafgesloten ubb-tags in de eerste 100 tekens voorkomen. Dan pakt de ubb-parser (gewoon en '!\\[b\](.*?)\\[/b\]!') ze nl. niet meer. Het gevolg is dus dat de ubb opeens zichtbaar wordt, wat natuurlijk niet de bedoeling is.

Omdat ik weet dat er hier veel mensen met ubb-tags bezig zijn geweest, hoopte ik er eigenlijk op dat iemand hier al een oplossing voor had bedacht.

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

stack based parser

[search=ubb code]

Doet iets met Cloud (MS/IBM)


  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 09-09 14:51

thomaske

» » » » » »

misschien eerste je text parsen, en daarna de eerste 100 tekens pakken..

hmm, dan heb je een beetje hetzelfde probleem, maar misschien minder erg.. :?

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


  • Nielsz
  • Registratie: Maart 2001
  • Niet online
Maar WAT wil je?
Wil je dat er helemaal geen ubb in zit, of alleen complete tags uitgevoerd worden? Of ook de halve?

  • Sabbi
  • Registratie: December 2000
  • Laatst online: 23:09

Sabbi

je denkt aan mij.

kennelijk kan je al de 1e honderd tekens uitlezen... als je daar nu gewoon de ubbtags uitknipt?
das toch niet zo moeilijk, karakters uit een string knippen?

  • Rense Klinkenberg
  • Registratie: November 2000
  • Laatst online: 15-09 23:45
Op vrijdag 07 december 2001 00:44 schreef Nielsz het volgende:
Maar WAT wil je?
Wil je dat er helemaal geen ubb in zit, of alleen complete tags uitgevoerd worden? Of ook de halve?
Op zich mogen er wel ubb-tags inkomen, maar geen halve (dus alleen de open tag), dat is nl. iets wat nu nog wel eens voorkomt.

* Rense Klinkenberg gaat er straks maar eens effe over slapen, want botweg de 'open' tags ahcter de tekst plakken zou nog best wel eens goed genoeg werken.

  • brammetje
  • Registratie: Oktober 2000
  • Laatst online: 12-01-2025
Op vrijdag 07 december 2001 01:35 schreef freak007 het volgende:

[..]

Op zich mogen er wel ubb-tags inkomen, maar geen halve (dus alleen de open tag), dat is nl. iets wat nu nog wel eens voorkomt.

* brammetje gaat er straks maar eens effe over slapen, want botweg de 'open' tags ahcter de tekst plakken zou nog best wel eens goed genoeg werken.
tuurlijk...

ff quote en code enzo eruit vissen, en verder ff checken of er dingen openstaan. Die close je dan.. Wat minder leuk is is bijvoorbeeld een [ op het einde of [/.. hoe haal je dat eruit?

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025

kvdveer

Z.O.Z.

probeer deze regexp (uitgaande van de PREG PCRE engine)
PHP:
1
2
3
<?
preg_replace("(\\[[bB]\](.*?)$)","<b>\\1</b>",$tekst);
?>

dat is
[b] tekst [einde] --> <b>tekst</b>

Natuurlijk moet je deze alleen toepassen op je 'snippet', en nergens anders.

edit: wat opgeleukt.

Localhost, sweet localhost


Verwijderd

Het is sowieso vaak lelijk als een woord halverwege wordt afgekapt. Je kunt dan het beste de mod een Frontpage tekst laten intypen, die niet langer kan zijn dan 100 tekens.
Zo doe ik het tenminste altijd :)
Je kunt natuurlijk ook wel na een laatste woord afkappen (dus alleen na spaties afkappen), maar dan krijg je hetzelfde effect, maar dan in een zin...

  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

Een stackbased parser die open tags automatisch afsluit zal heel goed werken..

  • Rense Klinkenberg
  • Registratie: November 2000
  • Laatst online: 15-09 23:45
Op vrijdag 07 december 2001 11:54 schreef wasigh het volgende:
Een stackbased parser die open tags automatisch afsluit zal heel goed werken..
Ja, maar waar is dat topic van een hele tijd geleden naar toe gegaan? Ik weet nl. dat ACM zo'n parser heeft gemaakt en dat het ook ergens is uitgelegd, maar ik kan het met de search niet echt vinden.

Ik heb nl. geen idee hoe je zo'n stack based parser moet maken / opzetten.

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025

kvdveer

Z.O.Z.

voor het bepalen van de eerste honderd tekens + het hele woord kun je de volgende regexp pakken:
PHP:
1
2
3
4
5
6
7
8
<?
if(strlen($tekst) < 100) 
  $resultaat = $tekst; // pak het hele artikel.
else {
  Preg_match("(^.{99}[^ ]*)",$tekst,$temp);
  $resultaat = $temp[0];
}
?>

Dan weet je zeker dat 'ie niet afkapt.

Codes kapt'ie alleen af als er een spatie in zit.


vertaling van het bovenstaande:

Pak vanaf het begin 99 karakters, plus alle karakters die geen spatie zijn.

Localhost, sweet localhost

Pagina: 1