Vraag & Antwoord

Webprogrammeren & scripting

[php] Kom niet uit preg_match patroon

2 antwoorden
  • Zoals enkelen van jullie al zullen weten, ben ik bezig met het opnieuw inrichten van mijn website, waarbij ik een MODx CMS heb, een forum en een wiki. Op de index van het algemene gedeelte (geregeld door MODx) wil ik een intro van het laatst gewijzigde artikel uit de wiki weergeven. Dat lukt goed, zie http://www.swordfactsbenelux.nl/modx/ (afbeelding bij die intro moet ik nog verzinnen, dus is nu nog een kruisje). De introtekst genereer ik door de tekst uit de database te trekken en te limiteren op 400 tekens: [code:1:096306eabb]$baseintro = substr($inh[0], 0, 400); $pagelink = ucwords($titel); $pagelink = str_replace(" ", "_", $pagelink); $intro = $baseintro.'...<br /><a href="/wiki/'.$pagelink.'">Lees verder...</a>';[/code:1:096306eabb] Dat resulteert momenteel in [quote:096306eabb]Pencak Silat is dé verdedigingskunst van Indonesië. Eeuwen geleden ontwikkelden priesters en monniken technieken om zichzelf te verdedigen. Hierbij bestudeerden zij het gedrag van dieren, met in het bijzonder de overlevingstechnieken. Door de jaren heen ontstonden honderden verschillen pencak silat stijlen. De stijlen zijn meestal verbonden aan een bepaalde streek, dorp of zelfs familie. Al dez...<br /><a href="/wiki/Pencak_Silat">Lees verder...</a>[/quote:096306eabb] Dat "dez" op het eind wil ik nu eigenlijk ook weggeknipt hebben, ik wil het liefst een geheel woord als laatste hebben. Als ik nu de volgende preg_replace uitvoer: [code:1:096306eabb]preg_replace('# (.*?) #', '', $baseintro);[/code:1:096306eabb] Dan resulteert dat in [quote:096306eabb]Pencak Silat is dé verdedigingskunst van Indonesië. Eeuwen geleden ontwikkelden priesters en monniken technieken om zichzelf te verdedigen. Hierbij bestudeerden zij het gedrag van dieren, met in het bijzonder de overlevingstechnieken. Door...<br /><a href="/wiki/Pencak_Silat">Lees verder...</a>[/quote:096306eabb]Om de een of andere reden pakt-ie een match ergens in het midden. Nu had ik ook niet verwacht dat-ie meteen de laatste match zou pakken, maar dat ik ik wel. Ik wil dat het laatste woord (dus vooraf gegaan door een spatie met erachter 3 puntjes) gematched en verwijderd wordt. Kan iemand me hiermee helpen? Ik ben me er een beetje op aan het stukbijten...
  • vergeet preg_match en zoek gewoon de laatste spatie met strrpos: [code:1:80bf333b11] $baseintro = substr($inh[0], 0, 400); $real_baseintro = substr($baseintro, 0, strrpos($baseintro, ' '));[/code:1:80bf333b11]

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.