truncateHTML hat fehler

  • hi,
    ich hab ein kleines problem.
    das ist mein code:


    leider funktioniert er nicht.
    truncatehtml kürzt es nicht.


    wenn ich jedoch data-test in data umändere (html attribut), dann funktioniert es.
    ich hab da rumgeschnitten und rumprobiert und bin dann zu dem ergebnis gekommen, dass es mit dem a-tag zutun hat.
    hier seht ihr einen live-beispiel:
    https://coderz.pro/ (dashboard), dort sollte ein eintrag sein: Hat das Tutorial Dieselben Gäste gruppieren im WCF2 geschrieben.
    das tutorialsystem ist auf 200 zeichen begrenzt (sieht man auch gleich dadrunter), aber hier werden mehr als das 10fache angezeigt.
    falls ich was neues bemerke kann ich ja berichten.


    grüße


    edit:
    scheiße, bei vorschläge gepostet, statt bei fehler


    edit2:
    ich hab keinen plan wieso (irgendwelche kodierungen vielleicht?), aber wenn ich die benötigten methoden von stringutil als function in die datei einbaue, dann funktioniert die funktion, die methode funktioniert jedoch nicht.
    siehe anhang.


    edit3:
    ok ich bin doof, ich hab die funktion nicht komplett kopiert, deshalb funktioniert sie.
    also der fehler liegt bei stripHtml
    denn diese bedingung:
    if (mb_strlen(self::stripHTML($string)) <= $length) { return $string; }
    wird ausgeführt, obwohl sie es nicht tuen sollte.
    wahrscheinlich ist der pattern falsch (HTML_PATTERN)


    edit4:
    übrigens, grad getestet, wenn man es ganz einfach hält:
    const HTML_PATTERN = '~<\/?[^>]+>~';
    funktioniert es


    edit5:
    dank @TimWolla weiß ich, dass es an den Minus liegt.
    das hier behebt es:

    Code
    const HTML_PATTERN = '~</?[a-z]+[1-6]?
                (?:\s*[a-z-]+\s*(=\s*(?:
                "[^"\\\\]*(?:\\\\.[^"\\\\]*)*"|\'[^\'\\\\]*(?:\\\\.[^\'\\\\]*)*\'|[^\s>]
                ))?)*\s*/?>~ix';


    trotzdem frag ich mich, wieso es so kompliziert sein muss, wenn es einfach geht.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!