Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

html code uit database inkorten

gerben
2 antwoorden
  • Ik haal voor mijn nieuwspagina de berichten uit een database. Deze berichten bestaan uit html code.

    Nu kan ik met behulp van:
    [code:1:289a767b09]
    $bericht = substr ("$bericht", 0, 150);
    [/code:1:289a767b09]

    het bericht wel inkorten, maar dan is een tabel in eens niet meer compleet of te wel de rij en/of tabel wordt dan niet afgesloten.

    Nu zou ik graag zien dat een bericht wordt afgekort na een aantal woorden, dat html tags worden afgesloten en dat er een link lees verder>> aan het eind staat van elk bericht. Bij het tellen van de woorden moet hij dan de html tags overslaan.

    Ik ben begonnen met een functie te maken…..
    [code:1:289a767b09]
    function choptext ($bericht, $count){
    $scount = str_word_count($bericht, 1);
    if ($count > 150) {
    substr ("$bericht", 0, 150);
    }
    else
    {}
    }
    [/code:1:289a767b09]



    Zou iemand mij kunnen helpen dit op te lossen?

    Alvast bedankt.

    Jeroen
  • Heb je al goed gezocht op internet? Ik kan me niet voorstellen dat hier niet al oplossingen voor zijn bedacht.

    Het probleem wat je wil oplossen is overigens niet zo simpel als het misschien in eerste instantie lijkt. Tenminste niet, als je ook de voorwaarde wil meenemen dat alle html tags in tact moeten blijven.

    Een simpele, recht-toe-recht-aan oplossing is om de functie strip_tags te gebruiken. De tekst die je dan terugkrijgt kan je afkappen op x woorden en kan je tonen als 'summary'. Je neemt dan echter voor lief, dat je geen opmaak in de summary hebt.

    De 'moeilijke' oplossing is om een stack-based oplossing te bouwen die teken voor teken je tekst afloopt en de woorden telt en bovendien bijhoudt op de stack welke html tags er voorbij zijn gekomen (en ze er weer afhaalt wanneer ze zijn afgesloten). Overgebleven tags kunnen weer worden afgesloten (LIFO) wanneer je op je max aantal woorden bent aanbeland.
    De HTML die je in deze functie stopt moet dan wel geen fouten bevatten. Als je ook die moet verbeteren, dan kan het wel eens een complexe boel worden ;)

Beantwoord deze vraag

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